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`](https://github.com/cloudflare/boring/) for TLS processing and [`quiche`](https://github.com/cloudflare/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

```bash
cargo add soyokaze
```

```bash
uv add soyokaze
```

## Development

### soyokaze.rs

```bash
cargo test
```

```bash
cargo bench
```

```bash
cargo +nightly fuzz run everything
```

### soyokaze.h

```bash
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:

```bash
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

```bash
cd python
uv run pytest
```

## Links
- [crates.io]https://crates.io/crates/soyokaze/ - Rust crate
- [pypi.org]https://pypi.org/project/soyokaze/ - Python package
- [docs.rs]https://docs.rs/soyokaze/ - Documentation
- [deepwiki.com]https://deepwiki.com/nercone-dev/soyokaze/ - Documentation; Automatically generated.