VeTiS
VeTiS is a lightweight yet powerful web server that brings simplicity and performance together. Designed with Rust’s safety guarantees in mind, it delivers HTTP/1, HTTP/2, and HTTP/3 support with a clean, intuitive API that makes building web services a breeze.
Built on top of hyper.
History
VeTiS started as a component of deboa-tests, a private crate used by deboa http client for integration testing purposes, as it got more features, like HTTP1/2 and 3 support, alongside TLS, I realized project could be reused somehow.
So with reusability in mind, I started EasyHttpMock, a project which aims to be a quick and easy way to start a mock server for integration purposes, it didn’t took too much to realized this internal http server used by EasyHttpMock could be reused for other purposes than simply be a mock server.
That’s why VeTiS came to reality, by taking advantage of what I started on deboa-tests for testing purposes, it turned into a complete http server project, the goal is make it very flexible, while keeping it small and fast.
Features
- Minimalist Design: Focus on what matters - serving HTTP requests efficiently
- Flexible Runtime: Choose between Tokio or Smol async runtimes
- Protocol Support: Full HTTP/1, HTTP/2, and HTTP/3 implementation
- Secure by Default: Built-in TLS support with modern cryptography
- Zero-Cost Abstractions: Leverage Rust’s performance without overhead
- Language Support: Built-in support for Python, PHP, and RSGI applications
- Standalone server: Can be used as a standalone server or as a library
- Feature-Gated: Include only what you need for optimal binary size
Quick Start
Please check crates section below for more information. Each crate has its own documentation and examples.
Crates
| Crate | Description | Documentation |
|---|---|---|
| vetis | Core HTTP server library | |
| vetis-smol | Smol runtime support | |
| vetis-tokio | Tokio runtime support | |
| vetis-macros | Macros for Vetis |
Standalone Server
Check out the standalone server for complete examples of how to use Vetis as a standalone server.
Examples
Check out the examples for complete examples of how to use Vetis in your projects.
Create project from template
You can create a new project from the template using cargo generate:
cargo generate ararog/vetis-templates
Benchmarks
Check out the benchmarks for performance details.
Documentation
Other Projects
- caramelo - Assertion based test framrwork
- deboa - HTTP client
- easyhttpmock - HTTP mock server
- sofie - Fullstack web framework
- uget - CLI HTTP client
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Author
Rogerio Pereira Araujo rogerio.araujo@gmail.com