Unique.js

One API surface, infinite languages. A polyglot web framework with a Rust core. Write your backend in any of 16 languages. Frontend in JS/TS only. Fast, secure, simple.

🚀Quick StartRunning in 5 minutes📚Tutorial50 chapters × 16 languages📖API ReferenceEvery class, method, typeExamplesCopy-paste-ready codeFAQCommon questions answered
86k+
requests / second
16
languages supported
127
tests passing
50
tutorial chapters

Why Unique.js?

A web framework should be fast by default, secure by default, and simple to learn. Unique.js delivers all three without trade-offs.

Blazing Fast

Hand-rolled HTTP/1.1 parser, trie router, io_uring zero-copy I/O, and SIMD JSON. 86k+ req/s on 2-core CI runners — 10-50x faster than Express or FastAPI.

🔒

Secure by Default

HSTS, CSP, X-Frame-Options, CORS, rate limiting, and JWT auth — all ON by default. You would have to explicitly disable them. Security is not optional.

🌐

Polyglot

Write your backend in Rust, JavaScript, TypeScript, Python, Go, Java, Kotlin, Dart, Swift, C++, PHP, Ruby, C#, Elixir, or Lua. One API, 16 languages.

🧅

Onion Middleware

Classic onion-model middleware pipeline. Each middleware wraps the next. Short-circuit by returning a response without calling next().

🗄️

Built-in ORM

SQLite, PostgreSQL, MySQL. CRUD, JOINs, transactions, migrations, and Argon2id password hashing — all from #[derive(Model)]. No extra dependencies.

🎨

CSS Engine

Tailwind-like utility classes compiled in Rust. 100+ utilities, responsive prefixes, state variants. No PostCSS, no Tailwind config, no Node.js dependency.

📄

SSR with .kng Files

Server-side rendering via data() + template() functions. Client-side hydration makes pages interactive without re-fetching. File-based routing.

🔌

WebSocket + HTTP/3

RFC 6455 WebSocket with broadcast support. HTTP/3 via quinn + h3. TLS via rustls. All built in — no extra crates needed.

📚

Auto API Docs

OpenAPI 3.1 spec generated automatically from your routes. Swagger UI at /docs. No annotations needed — just register routes and the docs appear.

How does Unique.js compare?

See how Unique.js stacks up against other popular web frameworks.

FeatureUnique.jsExpress.jsFastAPIActix
Language16 (polyglot)JavaScript onlyPython onlyRust only
Core engineRustNode.js (V8)Python (uvicorn)Rust
Requests / sec86,000+~8,000~2,500~90,000
Security middlewareOn by defaultManual (helmet)ManualManual
Built-in ORMYes (SQLite/PG/MySQL)NoNo (SQLAlchemy)No (diesel)
WebSocketBuilt-in (RFC 6455)Via ws libraryManualVia actix-web-actors
HTTP/3Yes (quinn + h3)NoNoNo
CSS engineBuilt-in (Tailwind-like)NoNoNo
SSRYes (.kng files)NoNo (Jinja2)No
Learning curveEasyEasyEasySteep

Choose your language

16 supported languages — pick one to start the tutorial

RustRustNative performance, full API accessJavaScriptJavaScriptNode.js binding via napi-rsTypeScriptTypeScriptType-safe JS with .tsk filesPythonPythonpyo3 binding, decorator APIGoGoStandalone net/http implementationJavaJavaC ABI via JNIKotlinKotlinJVM binding, same as JavaDartDartdart:ffi via C ABISwiftSwiftC interop via module mapC++C++Header-only wrapper around C ABIPHPPHPFFI extension to C libraryRubyRubyFFI gem to C libraryC#C#P/Invoke to C libraryCCDirect C ABI, no wrapper neededElixirElixirNIF binding to C libraryLuaLuaLuaJIT FFI to C library