#http-response #response #http #error #code #library #api-response

simbld-http

A comprehensive HTTP response library for Rust

1 unstable release

new 0.1.0 Nov 21, 2024

#1241 in Web programming

MIT license

77KB
1.5K SLoC

🌟 Simbld-HTTP


Simbld-HTTP is a modular and comprehensive Rust library designed for managing HTTP response codes. Whether you're building APIs, handling custom response codes, or integrating middleware, Simbld-HTTP provides an organized and extensible framework to simplify your workflow.


✨ Key Features

Support for Standard and Custom HTTP Codes:

Handles all standard HTTP response families: 1xx to 5xx. Extends with custom families: 6xx, 7xx, and 9xx. Includes detailed descriptions for every status code.

Extensive Utilities:

JSON and XML response formatting. Helpers for paginated and generic HTTP responses. Middleware integration for Actix Web.

Easy Extensibility:

Add new families or custom helpers with minimal effort.


🚀 Why Choose Simbld-HTTP?

Developer-Friendly: Intuitive API with detailed documentation. Modular Design: Use only the parts you need for your project. Future-Proof: Easily extend to accommodate evolving HTTP standards and custom needs. Battle-Tested: Includes robust tests to ensure reliability.


📦 Installation

Add Simbld-HTTP to your ``Cargo.toml:

[dependencies]
simbld-http = "0.1.0"


📚 Documentation

Local Documentation

Run the following command to generate and open the documentation:

cargo doc --no-deps --open
This will
  • Generate detailed API documentation from inline comments (///).
  • Display all public modules, enums, and methods.
Online Documentation

The full documentation will be available on docs.rs after publishing. Stay tuned for updates!


🔧 Usage Examples

Basic Usage
use simbld_http::responses::ResponsesTypes;

let response = ResponsesTypes::Success(ResponsesSuccessCodes::Ok);
println!("Code: {}, Description: {}", response.to_u16(), response.description());
Retrieve a Crawler Code
use simbld_http::responses::ResponsesCrawlerCodes;
use strum::EnumProperty;

fn main() {
    let code = ResponsesCrawlerCodes::ParsingErrorHeader;
    println!(
        "Code: {}, Description: {}",
        code.to_u16(),
        code.get_str("Description").unwrap()
    );
}

Run the example with
cargo run --example usage
Using the Middleware
cargo run --example middleware_usage
Test the middleware response with curl
curl -i http://127.0.0.1:8080/

⚙️ Structure of Families

Family Description
1xx Informational responses (e.g., Continue, Processing)
2xx Successful responses (e.g., OK, Created)
3xx Redirection responses (e.g., Moved Permanently, Temporary Redirect)
4xx Client errors (e.g., Bad Request, Unauthorized)
5xx Server errors (e.g., Internal Server Error, Service Unavailable)
6xx Service operations (e.g., Service Timeout)
7xx Crawler responses (e.g., Rate Limited, Crawl Blocked)
9xx Local API errors (e.g., InsufficientFunds, ExpiredCard)

🤝 Contributing to Simbld-HTTP

We welcome contributions to Simbld-HTTP! Help us make this library the go-to solution for HTTP response code management in Rust.

1 Fork this repository
2 Clone your fork
git clone git@github.com:<your-username>/simbld-http.git

3 Create a branch for your changes
git switch -c feature/<your-feature-name>


4 Test your changes
cargo test

5 Open a pull request

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.


🛠️ Crates.io Docs.rs License: MIT

Dependencies

~15–26MB
~435K SLoC