HTTP client/server code
When scanning .toml files, specifically Cargo.toml files in Rust projects, for dependencies that indicate HTTP usage, I looked for crates that provide HTTP client or server functionalities.
Here are some common dependencies that I encountered when I did this search ~3 years ago (the version numbers are all almost certainly outdated):
HTTP Client Libraries
reqwest: A popular HTTP client library that provides a convenient, higher-level API for making HTTP requests. It is built on hyper.
hyper: A fast, low-level HTTP implementation written in Rust. While it can be used directly, it's also a building block for other HTTP clients and servers.
surf: A lightweight, async HTTP client library that is part of the async-std ecosystem.
ureq: A simple, blocking HTTP client that is suitable for single-threaded applications.
isahc: A versatile HTTP client with a focus on ease of use and safe defaults.
HTTP Server Libraries:
actix-web
A powerful, pragmatic, and extremely fast web framework for Rust.
rocket
A web framework for Rust with a focus on ease-of-use, expressibility, and speed.
Rocket is an async backend web framework for Rust with a focus on usability, security, extensibility, and speed. Rocket makes it simple to write secure web applications without sacrificing productivity or performance.
rocket = "0.4" # 0.5 just released on 17-Nov-2023
- warp: A composable web server framework that leverages the
hyper library for underlying HTTP handling.
- tide: A minimal and pragmatic Rust web application framework built on top of
async-std.
- gotham: A flexible web framework that does not sacrifice safety, security, or speed.
HTTP Utilities and Middleware:
- http: Provides types and traits for working with HTTP.
- tower: A library of modular and reusable components for building robust networking clients and servers.
- tower-http: A collection of middleware and utilities for use with
tower and hyper.
Asynchronous Runtimes:
While not HTTP-specific, asynchronous runtimes are often used in conjunction with async HTTP libraries. Look for:
- tokio: A runtime for writing reliable, asynchronous, and slim applications with the Rust programming language.
tokio = { version = "1.0", features = ["full"] }
- async-std: An async port of the Rust standard library.
HTTP client/server code
When scanning
.tomlfiles, specificallyCargo.tomlfiles in Rust projects, for dependencies that indicate HTTP usage, I looked for crates that provide HTTP client or server functionalities.Here are some common dependencies that I encountered when I did this search ~3 years ago (the version numbers are all almost certainly outdated):
HTTP Client Libraries
reqwest: A popular HTTP client library that provides a convenient, higher-level API for making HTTP requests. It is built onhyper.hyper: A fast, low-level HTTP implementation written in Rust. While it can be used directly, it's also a building block for other HTTP clients and servers.surf: A lightweight, async HTTP client library that is part of theasync-stdecosystem.ureq: A simple, blocking HTTP client that is suitable for single-threaded applications.isahc: A versatile HTTP client with a focus on ease of use and safe defaults.The
reqwestlibraryHTTP Server Libraries:
actix-web
A powerful, pragmatic, and extremely fast web framework for Rust.
rocket
A web framework for Rust with a focus on ease-of-use, expressibility, and speed.
hyperlibrary for underlying HTTP handling.async-std.HTTP Utilities and Middleware:
towerandhyper.Asynchronous Runtimes:
While not HTTP-specific, asynchronous runtimes are often used in conjunction with async HTTP libraries. Look for: