Rust HTTP

Open-source Rust projects categorized as HTTP

Top 23 Rust HTTP Projects

  • hyper

    An HTTP library for Rust (by hyperium)

  • Project mention: The Linux Kernel Prepares for Rust 1.77 Upgrade | news.ycombinator.com | 2024-02-18

    > If you are equally picky and constrain yourself to parts of the ecosystem which care about binary size, you still have more options and can avoid size issues.

    What's an example of this for, say, libcurl? On my system it has a tiny number of recursive dependencies, around a dozen. [0] Furthermore if I want to write a C program that uses libcurl I have to download zero bytes of data ... because it's a shared library that is already installed on my system, since so many programs already use it.

    I don't really know the appropriate comparison for Rust. reqwest seems roughly comparable, but it's an HTTP client library, and not a general purpose network client like curl. Obviously curl can do a lot more. Even the list of direct dependencies for reqwest is quite long [1], and it's built on top of another http library [2] that has its own long list of dependencies, a list that includes tokio, no small library itself.

    In terms of final binary size, the installed size of the curl package on my system, which includes both the command line tool and development dependencies for libcurl, is 1875.03 KiB.

    [0] I'm excluding the dependency on the ca-certificates package, since this only provides the certificate chain for TLS and lots of programs rely on it.

    [1] https://crates.io/crates/reqwest/0.11.24/dependencies

    [2] https://crates.io/crates/hyper/0.14.28/dependencies

  • hurl

    Hurl, run and test HTTP requests with plain text.

  • Project mention: Bruno | news.ycombinator.com | 2024-03-09

    I tried Hurl after Insomnia went the way of Postman. The highlights you list were the strong drivers for testing it out. Where Hurl fell short was composing requests. Example: X.hurl response has authToken. Y.hurl uses authToken. Z.hurl uses authToken. There's no import ability[1], so you've got to use other tooling to copy X.hurl into Y.hurl and Z.hurl.

    Ultimately settled on Bruno. It's backed by readable text files[2] as well. The CLI works for scripting. And the GUI is familiar enough that I've managed to convert Postman holdouts at my dayjob.

    [1]: https://github.com/Orange-OpenSource/hurl/issues/1723

    [2]: https://docs.usebruno.com/bru-language-samples.html

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • warp

    A super-easy, composable, web server framework for warp speeds. (by seanmonstar)

  • Project mention: Hyper – A fast and correct HTTP implementation for Rust | news.ycombinator.com | 2023-05-12

    I tried warp [0] and I am unimpressed so far. Pretty complex, limited documentation, buggy. The builder paradigm they used feels pretty constrained and, in my opinion, achieve the opposite of the simplicity it is supposed to bring. I was surprised it is so popular.

    Maybe I need more time or a favorable comparison to another framework to appreciate it.

    [0] https://github.com/seanmonstar/warp

  • reqwest

    An easy and powerful Rust HTTP Client

  • Project mention: The Linux Kernel Prepares for Rust 1.77 Upgrade | news.ycombinator.com | 2024-02-18

    > If you are equally picky and constrain yourself to parts of the ecosystem which care about binary size, you still have more options and can avoid size issues.

    What's an example of this for, say, libcurl? On my system it has a tiny number of recursive dependencies, around a dozen. [0] Furthermore if I want to write a C program that uses libcurl I have to download zero bytes of data ... because it's a shared library that is already installed on my system, since so many programs already use it.

    I don't really know the appropriate comparison for Rust. reqwest seems roughly comparable, but it's an HTTP client library, and not a general purpose network client like curl. Obviously curl can do a lot more. Even the list of direct dependencies for reqwest is quite long [1], and it's built on top of another http library [2] that has its own long list of dependencies, a list that includes tokio, no small library itself.

    In terms of final binary size, the installed size of the curl package on my system, which includes both the command line tool and development dependencies for libcurl, is 1875.03 KiB.

    [0] I'm excluding the dependency on the ca-certificates package, since this only provides the certificate chain for TLS and lots of programs rely on it.

    [1] https://crates.io/crates/reqwest/0.11.24/dependencies

    [2] https://crates.io/crates/hyper/0.14.28/dependencies

  • rathole

    A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok.

  • Project mention: Rathole – A lightweight reverse proxy in Rust like frp and ngrok | news.ycombinator.com | 2024-03-07
  • oha

    Ohayou(おはよう), HTTP load generator, inspired by rakyll/hey with tui animation.

  • poem

    A full-featured and easy-to-use web framework with the Rust programming language.

  • Project mention: Write OpenAPI with TypeSpec | news.ycombinator.com | 2024-03-27

    TypeSpec is great, but if you're working with Rust and you're about to write a new project that will require an OpenApi spec sooner or later, I'd like to recommend a web framework that has spec generation baked in:

    https://github.com/poem-web/poem (see poem_openapi)

    All you need to do is derive a trait on your response structs and in return you get an almost perfectly generated spec. Unions, objects, enums are first class citizens.

    Also, if you're from coming from PHP, the controllers feel very much like symfony controllers.

    P.s. Please do recommend an ORM that would feel closer to doctrine. I miss doctrine.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • sozu

    Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome!

  • simple-http-server

    Simple http server in Rust (Windows/Mac/Linux)

  • granian

    A Rust HTTP server for Python applications

  • Project mention: Improving Interoperability Between Rust and C++ | news.ycombinator.com | 2024-02-05

    Yeah, PyO3 is great. I've tried to play around with releasing the GIL from rust in Python 3.12. I would enjoy writing a WSGI/ASGI server with a Celery runtime at some point too. Or contribute to Granian.

    https://github.com/emmett-framework/granian

  • woodpecker

    Drill is an HTTP load testing application written in Rust

  • Project mention: My impressions of using the Drill performance testing tool | dev.to | 2023-12-28
  • ntex

    framework for composable networking services

  • iggy

    Iggy is the persistent message streaming platform written in Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing millions of messages per second.

  • Project mention: Iggy.rs – A Message Broker in Rust | news.ycombinator.com | 2023-07-24
  • ureq

    A simple, safe HTTP client

  • Project mention: Thermostat Control for Ecobee | /r/rust | 2023-05-29

    I also enjoyed using ureq as an http client.

  • http

    Rust HTTP types (by hyperium)

  • Rouille, Rust web server middleware

    Web framework in Rust (by tomaka)

  • Project mention: Rouille, a Rust web micro-framework | news.ycombinator.com | 2023-12-29
  • cherrybomb

    Stop half-done APIs! Cherrybomb is a CLI tool that helps you avoid undefined user behaviour by auditing your API specifications, validating them and running API security tests.

  • Project mention: Cherrybomb: Audit, validate and test API specifications | news.ycombinator.com | 2023-11-22
  • binserve

    A fast production-ready static web server with TLS (HTTPS), routing, hot reloading, caching, templating, and security in a single-binary you can set up with zero code.

  • goose

    Load testing framework, inspired by Locust (by tag1consulting)

  • doh-server

    Fast, mature, secure DoH and ODoH server proxy written in Rust. Previously known as doh-proxy and rust-doh.

  • isahc

    The practical HTTP client that is fun to use.

  • Mockito

    HTTP mocking for Rust! (by lipanski)

  • zino

    Next-generation framework for composable applications in Rust.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Rust HTTP related posts

Index

What are some of the best open-source HTTP projects in Rust? This list will help you:

Project Stars
1 hyper 13,804
2 hurl 10,875
3 warp 9,124
4 reqwest 9,095
5 rathole 7,636
6 oha 3,875
7 poem 3,200
8 sozu 2,825
9 simple-http-server 2,448
10 granian 2,026
11 woodpecker 1,959
12 ntex 1,734
13 iggy 1,566
14 ureq 1,559
15 http 1,090
16 Rouille, Rust web server middleware 1,071
17 cherrybomb 1,042
18 binserve 955
19 goose 689
20 doh-server 679
21 isahc 677
22 Mockito 622
23 zino 604

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com