gitmyhub

unit

C ★ 5.6k updated 9mo ago ▣ archived

NGINX Unit - universal web app server - a lightweight and versatile open source server that simplifies the application stack by natively executing application code across eight different programming language runtimes.

NGINX Unit was an all-in-one web server that ran Python, PHP, Node.js, and other languages natively, now archived with development stopped and no new maintainer.

CPythonPHPNode.jsRubyWebAssemblysetup: moderatecomplexity 4/5

NGINX Unit was a web server designed to run application code directly, without the separate process managers and reverse proxies that most web deployments require. Where a typical server setup involves one program to serve files, another to manage language runtimes like Python or PHP, and a third to route traffic between them, Unit aimed to do all of that in a single piece of software. It supported eight programming languages natively, including Python, PHP, Node.js, and Ruby.

Important note: the repository has been archived and the README states that all development has stopped and security vulnerabilities may go unaddressed. The repository can still be cloned and used under its existing license, but no new maintainer has been announced.

While active, Unit had a distinctive approach to configuration. Instead of editing text files and restarting a service, administrators configured it by sending JSON data to an API over a Unix socket. That API accepted changes and applied them immediately, without interrupting traffic in progress. The same API could be used to add a new application, adjust a listener, or inspect the current running configuration, all without touching a config file on disk.

Installation was available through package managers on Debian, Ubuntu, Fedora, and Red Hat based systems, through Docker images with per-language variants, and through Homebrew on macOS. A command-line tool called unitctl provided a friendlier interface for starting instances, editing configuration interactively, and managing running processes.

Unit also supported WebAssembly components using the WASI 0.2 standard, which allows code compiled from languages like Rust or C to run in a sandboxed environment on the server. An OpenAPI specification for the control API was included in the repository for developers building tooling around Unit.

The code was made by the NGINX team, the same organization behind the widely used NGINX web server. It was released as open source.

Where it fits