An unfussy web server designed for straightforward authoring and scalable performance.
Suitable for hosting blogs, newsletters, personal sites, documentation, etc.
Do you like databases, frameworks, "stacks", buzzwords, and bloat? Do you know what a "CMS" is? Then Credence is probably not for you. Welcome to the nonsense-free web zone.
Rustaceans: All of Credence's functionality lives in credence-lib, so you can enhance it, integrate it into something else, remix it, etc.
- The basics guide will get you up and running with the default configuration.
- The advanced guide will take it to the next level.
- We also have some useful tips!
- And for Rustaceans there's the credence-lib documentation.
- Distributed as a single executable
- Just point it at your web assets directories
- Sensible out-of-the-box defaults
- Straightforward configuration in YAML if you need to go beyond the defaults
- Serve multiple sites from a single Credence process
- A reverse proxy is not required: Credence aims to have most everything you should need for outward exposure
- Your file directory structure = your URL structure
- Write your content in Markdown (with a few optional annotations)
- Design your HTML in ... HTML! (with optional Jinja conveniences)
- Turn a directory full of Markdown pages into a user-searchable catalog
- Every rendered page has a JSON endpoint (for your fancy JavaScript widgets)
- Oh, and Credence also serves regular files, duh
- HTTP/2 and HTTP/1.1 (HTTP/3 is in the works; no rush)
- Multiple sites can share the same port as long as they are attached to different host names
- Each host name gets its own TLS keys—even when multiple hosts share the same port!
- Profoundly asynchronous (scales up gracefully), covering all networking, file access, caching, and compression algorithms
- Automagical in-memory caching (using kutil_http)
- Automagical response compression (integrated into the cache)
- Rust, Tokio, Hyper, axum, Tower (a.k.a. the "RTHaT stack"?)
Like much of the Rust ecosystem, licensed under your choice of either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.