# njs

> scripting language based on JavaScript

**Wikidata**: [Q113662217](https://www.wikidata.org/wiki/Q113662217)  
**Source**: https://4ort.xyz/entity/njs-q113662217

## Summary
njs, also known as NGINX JavaScript, is a scripting language based on JavaScript created by NGINX, Inc. It is designed for handling run-time events and complies with the ECMA-262 5.1 edition specification. The project is distributed under the terms of the 2-clause BSD License and its source code is maintained in a public GitHub repository.

## Key Facts
- **Entity Type:** Scripting language (subclass of programming language for run-time events).
- **Developer:** NGINX, Inc.
- **Aliases:** NGINX JavaScript.
- **Technical Compliance:** Created to comply with the ECMA-262 5.1 edition standard.
- **License:** 2-clause BSD License.
- **Copyright Status:** Copyrighted.
- **Source Code:** Hosted on GitHub at `https://github.com/nginx/njs`.
- **Official Documentation:** Available at `https://nginx.org/en/docs/njs/`.
- **Version History:** Early development releases include version 0.1.6 (2016-12-13) through version 0.1.15 (2017-11-20).

## FAQs
### Q: What standard is njs based on?
A: njs complies with the ECMA-262 5.1 edition specification. While it is based on JavaScript, it is a distinct implementation designed for specific run-time environments.

### Q: Who develops and maintains njs?
A: The scripting language is developed by NGINX, Inc. As of June 2024, the source code is maintained in a repository migrated to GitHub.

### Q: Under what license is njs distributed?
A: njs is distributed as open-source software under the 2-clause BSD License, though it maintains a copyrighted status.

## Why It Matters
njs represents a specialized intersection of standard web scripting and server-side infrastructure management. By providing a scripting language based on JavaScript—specifically compliant with ECMA-262 5.1—NGINX, Inc. offers a tool that lowers the barrier to entry for configuring complex server behaviors. Developers familiar with JavaScript syntax can leverage njs to handle run-time events without needing to learn a proprietary configuration language or compile C modules.

The language's strict licensing under the 2-clause BSD License ensures that it can be widely adopted and integrated into various commercial and open-source projects. Its development trajectory, evidenced by a steady release schedule of incremental versions (such as the progression from 0.1.6 to 0.1.15 throughout 2016 and 2017) and the modernization of its workflow (migrating source control to GitHub in 2024), highlights an ongoing commitment to stability and community accessibility. This ensures that njs remains a relevant tool for extending server functionality in a standardized, maintainable way.

## Notable For
- **JavaScript Foundation:** Distinguished as a scripting language built upon JavaScript standards rather than a completely proprietary syntax.
- **ECMA Compliance:** Strict adherence to the ECMA-262 5.1 edition, ensuring predictable behavior for developers familiar with that standard.
- **Open Source Licensing:** Utilizes the permissive 2-clause BSD License, facilitating broad usage and modification.
- **Modern Development Workflow:** Notably migrated its source code repository to GitHub in June 2024 to improve accessibility for contributors.
- **Rapid Early Iteration:** Demonstrated a rapid development cycle in its early years, releasing nine minor versions between December 2016 and November 2017.

## Body
### Overview and Classification
njs is a scripting language classified as a programming language for run-time events. Often referred to by the alias "NGINX JavaScript," it serves as a utility for extending the functionality of its parent ecosystem. It is distinct from standard browser-based JavaScript, focusing instead on server-side logic and event processing.

### Technical Specifications
The language is engineered to comply with the **ECMA-262 5.1 edition** standard. This compliance ensures that the syntax and core features align with widely understood specifications, although it may not support features introduced in newer ECMAScript versions (ES6 and beyond) found in modern browsers.

### Licensing and Copyright
While the software is **copyrighted**, it is made available to the public under the **2-clause BSD License**. This licensing model is known for its simplicity and permissiveness, allowing for redistribution and use in source and binary forms with or without modification, provided copyright notices are retained.

### Development and Release History
The development of njs is managed by **NGINX, Inc.** Historical data indicates a consistent release schedule during its early active development phase:
- **0.1.6:** Released December 13, 2016.
- **0.1.7:** Released December 27, 2016.
- **0.1.8:** Released January 24, 2017.
- **0.1.9:** Released February 1, 2017.
- **0.1.10:** Released April 4, 2017.
- **0.1.11:** Released June 27, 2017.
- **0.1.12:** Released August 8, 2017.
- **0.1.13:** Released August 31, 2017.
- **0.1.14:** Released October 9, 2017.
- **0.1.15:** Released November 20, 2017.

### Source Code Availability
As of June 2024, the official source code repository for njs is hosted on **GitHub** at `https://github.com/nginx/njs`. This migration was announced in early June 2024 to centralize development and issue tracking. The official English-language documentation is hosted by NGINX at `https://nginx.org/en/docs/njs/`.

## References

1. [Source](https://nginx.org/en/docs/njs/index.html)
2. [Changes](https://nginx.org/en/docs/njs/changes.html)
3. [Changes](http://nginx.org/en/docs/njs/changes.html)
4. [Release 0.1.0. 2016](https://github.com/nginx/njs/releases/tag/0.1.0)
5. [Release 0.1.1. 2016](https://github.com/nginx/njs/releases/tag/0.1.1)
6. [Release 0.1.2. 2016](https://github.com/nginx/njs/releases/tag/0.1.2)
7. [Release 0.1.3. 2016](https://github.com/nginx/njs/releases/tag/0.1.3)
8. [Release 0.1.4. 2016](https://github.com/nginx/njs/releases/tag/0.1.4)
9. [Release 0.1.5. 2016](https://github.com/nginx/njs/releases/tag/0.1.5)
10. [Release 0.8.6. 2024](https://github.com/nginx/njs/releases/tag/0.8.6)
11. [Release 0.8.7. 2024](https://github.com/nginx/njs/releases/tag/0.8.7)
12. [Release 0.8.10. 2025](https://github.com/nginx/njs/releases/tag/0.8.10)
13. [Release 0.9.0. 2025](https://github.com/nginx/njs/releases/tag/0.9.0)
14. [Release 0.9.1. 2025](https://github.com/nginx/njs/releases/tag/0.9.1)
15. [Release 0.9.2. 2025](https://github.com/nginx/njs/releases/tag/0.9.2)
16. [Release 0.9.3. 2025](https://github.com/nginx/njs/releases/tag/0.9.3)
17. [Release 0.9.4. 2025](https://github.com/nginx/njs/releases/tag/0.9.4)
18. [Release 0.9.5. 2026](https://github.com/nginx/njs/releases/tag/0.9.5)
19. [Release 0.9.6. 2026](https://github.com/nginx/njs/releases/tag/0.9.6)
20. [NGINX JavaScript (njs) has migrated to Github. 2024](https://mailman.nginx.org/pipermail/nginx/2024-June/WBTVAEMFIOQDL3VEBP7Z65Q4E56T73L6.html)
21. [Source](https://nginx.org/en/docs/njs/)