Open foundation · pre-release
The guarded
gateway.
Hoplite brings Hara to the edge—an application server built into Nginx, where immutable resources meet worker-local compiled handlers.
The network boundary, made legible
Infrastructure should be strong enough to disappear.
Hoplite keeps the request path short and the operating model explicit. Applications are data. Handlers are resolved once. The host provides only the capabilities your code is allowed to use.
From the edge
to your code.
One narrow route through the system, with each boundary visible and inspectable.
Each Nginx worker owns one Hoplite runtime and compiles route handlers once during startup.
Small surface.
Strong boundary.
Designed for systems that value clarity at runtime and calm in production.
Immutable routing
Applications are declared as resource trees, making the server shape data you can inspect before it runs.
Async by design
Handlers can await host services without blocking the worker that carries the request.
Operationally direct
Check, build, serve, inspect, reload, and stop through one deliberately small command surface.
OpenAPI included
Route declarations become generated interface descriptions alongside the built application.
Declare the route.
Keep the handler.
A Hoplite application selects one Hara Var. The resource tree describes the interface; calling the handler remains a runtime operation.
Read the architecture notes ↗(ns example.app
(:require [hoplite.core :as h]))
(defn hello [request]
{:status 200
:headers {"content-type" "text/plain"}
:body "Hello from Hoplite\n"})
(def app
(h/app
{:name "example"
:resources
[["/hello"
{:get {:handler #'hello}}]]}))
Begin at the source
Stand at the threshold.
Hoplite is pre-release and macOS-first. Linux is exercised in CI and Docker while the first packaged release is prepared.
git clone https://github.com/greenways-ai/hoplite.git