Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

183 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HSR

Build fast HTTP apis fast, with Rust, and OpenAPI

  • Define your API as an OpenAPI 3.0 spec
  • HSR will code-gen a server/client interface
  • Implement your interface (simple, safe, strongly typed!)
  • Run! 'If it compiles, it works!'

Docs

Quickstart

Take a look at the quickstart example. It contains the minimum boilerplate needed to get up and running.

Tutorial

Read the tutorial for a step-by-step guide to get up and running.

Less Quick Start

Take a look at the petstore example for a more complex example with a mocked database backend.

Features

  • HTTP server
  • HTTP client
  • Type-safe path/query/json handling
  • Supports all HTTP verbs
  • High performance
  • Based on async/await and actix-web 4.2.1

FAQ

What's the difference between this and swagger-rs?

I haven't used swagger-rs, however the major difference is that hsr is pure Rust, whereas swagger-rs takes advantage of an existing code-generator written in Java. That means that the swagger-rs is more mature likely much more correct, hsr is much easier to use and is seamlessly integrated into typical Rust workflow.

What do you mean, 'fast'?

It uses Actix-Web under the hood, rated as one of the fastest web frameworks by techempower. hsr imposes very little overhead on top.

As a simple and not-very-scientific benchmark, on my laptop (X1 Carbon 6th Gen) I measured around:

  • 120,000 requests/second for an empty GET request
  • 100,000 requests/second for a POST request with a JSON roundtrip

Try it yourself! See the bench example.

Why the name?

I like fast trains.

License

MIT

About

Fast APIs, fast

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages