tanu

Crates.iotanu
lib.rstanu
version
sourcesrc
created_at2025-01-30 14:01:04.175247+00
updated_at2025-05-07 14:08:36.659121+00
descriptiontanu - High-performance and async-friendly WebAPI testing framework for Rust
homepagehttps://github.com/tanu-rs/tanu
repositoryhttps://github.com/tanu-rs/tanu
max_upload_size
id1536417
Cargo.toml error:TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
(yukinarit)

documentation

README

tanu

High-performance, async-friendly and ergonomic WebAPI testing framework for Rust

Motivation

As a long time backend engineer, I have always been passionate about building reliable and efficient systems. When working with WebAPIs, ensuring correctness, stability, and performance is crucial, yet I often found existing testing frameworks lacking in speed, flexibility, or Rust-native support. This led me to create a WebAPI testing framework in Rust.

While some WebAPI testing tools exist for Rust, they often lack ergonomics, are too low-level, or don't integrate well with modern Rust web frameworks. My goal was to create a framework that is:

  • Fast and lightweight – Leveraging Rust’s zero-cost abstractions to minimize unnecessary overhead.
  • Type-safe and ergonomic – Taking advantage of Rust’s strong type system to prevent common errors at compile time.
  • Easily extensible – Allowing developers to integrate custom assertions, mocking, and performance metrics seamlessly.
  • Concurrency and async-friendly – Supporting asynchronous requests and concurrent execution to test APIs efficiently.

I tried multiple solutions in the past but encountered significant limitations:

  • Postman - Postman is a great tool but not designed for API end-to-end testing. You need a GUI and have to write assertions in JavaScript, which results in massive JSON files that become difficult to manage.
  • Playwright - Playwright is an excellent framework for web end-to-end testing. While it does support API testing, I wanted to use the same language for both API implementation and tests, which Playwright does not offer.
  • Rust Standard Test Framework - I attempted multiple times to write API tests using #[test], along with tokio, test-case, and reqwest crates. While functional, this approach lacked structure and ergonomics for writing effective tests at scale. I wanted a dedicated framework to simplify and streamline the process.

Screenshots


Commit count: 0

cargo fmt