soyokaze 0.6.3

HTTP/1/2/3 Library Crate
Documentation

soyokaze

HTTP/1/2/3 Library Crate

Overview

An HTTP/1/2/3 implementation written in Rust.

It uses boring for TLS processing and quiche for QUIC processing.

Requirements

soyokaze.rs

  • Linux / macOS (x86_64, AArch64)
  • Rust 1.88+ (including dependencies, The crate itself is 1.85+)
  • CMake and C/C++ Toolchain (for building BoringSSL)

soyokaze.h (libsoyokaze)

  • Linux / macOS (x86_64, AArch64)
  • Rust 1.88+ (including dependencies, The crate itself is 1.85+)
  • CMake and C/C++ Toolchain

soyokaze.py

  • Linux / macOS (x86_64, AArch64)
  • Python 3.10+

Installation

cargo add soyokaze
uv add soyokaze

Development

soyokaze.rs

cargo test
cargo bench
cargo +nightly fuzz run everything

soyokaze.h

cargo build --lib
cc -std=c11 -Iinclude tests/ffi.c -Ltarget/debug -lsoyokaze -o ffi-test
LD_LIBRARY_PATH=target/debug ./ffi-test  # DYLD_LIBRARY_PATH=target/debug on macOS

Against the static library, which is how the release profile is exercised:

cargo build --release --lib
cc -std=c11 -Iinclude tests/ffi.c target/release/libsoyokaze.a \
    $(cargo rustc --release --lib --crate-type staticlib -- --print native-static-libs 2>&1 | sed -n 's/^note: native-static-libs: //p' | tail -n1) -o ffi-test
./ffi-test

soyokaze.py

cd python
uv run pytest

Links