Hermes is the seed of a complete HTTP framework written in Rust. While it currently focuses on clean abstractions for HTTP messages and minimal networking components, the long‑term goal is to offer a fully fledged web framework capable of replacing typical PHP stacks.
- Utilities for parsing and generating HTTP messages exposed under the
httpmodule. - A minimal asynchronous client for performing requests, available under
the
http::servicesmodule. - A lightweight asynchronous server used in examples and tests, also under
http::services. - A router with route groups and a
Controllertrait to handle incoming requests. - A simple dependency injection
Containersupporting multiple named instances of a type for sharing services with controllers. - Basic session handling backed by a file-based store with a pluggable
SessionStoretrait. Session values use theValuetype and are stored using a configurable formatter (JSON by default) under thehttp::sessionmodule. The module also exposes agenerate_idhelper to create secure session IDs. - Simple cookie parsing and response helpers available under the
http::cookiemodule.
cargo buildcargo testAt this stage the crate offers utilities for parsing and generating HTTP
messages. All core types are available under the http module. It also ships
with a minimal asynchronous client and server used in the tests and examples.
use hermes::http::services::client::Client;
use hermes::http::ResponseTrait;
# tokio_test::block_on(async {
let resp = Client::get("http://example.com").await.unwrap();
println!("Status: {}", resp.code());
# });The project will evolve into a complete backend framework. Upcoming milestones
include an asynchronous server built on Tokio and Hyper, a richer routing
system with middleware and dependency injection, session management using a
file-based backend by default with support for custom stores, security
mechanisms, database access through an ORM, a template engine, CLI tools and
continuous integration. Advanced features like form handling, background tasks
and optional WebSocket support are also planned. See ROADMAP.md for more
details.