Glen De Cauwsemaecker fb3c281c96 bump rama to 0.2 (#9895) 5 月之前
..
src fb3c281c96 bump rama to 0.2 (#9895) 5 月之前
templates c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前
.gitignore c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前
Cargo.lock fb3c281c96 bump rama to 0.2 (#9895) 5 月之前
Cargo.toml fb3c281c96 bump rama to 0.2 (#9895) 5 月之前
README.md c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前
benchmark_config.json c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前
config.toml c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前
rama.dockerfile c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前
run.sh c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前
rustfmt.toml c69d468a85 add rama rust framework to benchmarks (#9830) 6 月之前

README.md

Rama

Description

Rama (ラマ) is a modular service framework for the Rust language to move and transform your network packets.

Variants

  • PostgreSQL using SQLx, tokio_postgres, and deadpool.
  • MongoDB with mongodb.

Test URLs

Notable Points (both performance and build)

  • Use of async.
  • Use of the most recent versions of Rust, rama and dependencies.
  • (Disabled by default) Compile-time swap-in of simd-json instead of serde_json for faster JSON serialization.
  • Release binaries are stripped and compiled with CPU native.
  • Sockets configured with TCP_NODELAY and to support an increased number of pending connections.
  • For very simple benchmarks, use of a separate, single-threaded Tokio runtime for each thread.
  • Server configured to serve HTTP/1 only, with no need for websockets.
  • Separation of build and deployment containers using multi-stage builds.
  • Deployment into Google's minimal distroless-cc container.
  • Use of pipelined database queries (where supported).
  • Streaming database queries (where supported).
  • Use of PostgreSQL prepared statements cache (where supported).
  • Use of PostgreSQL arrays to execute multi-row database updates with a single UPDATE query.
  • Use of a fast PRNG