blazingly-native 0.1.1

Native Compio HTTP/1 adapter for Blazingly, with optional rustls TLS and an experimental HTTP/2 path
Documentation
# blazingly-native

Native Compio-based HTTP/1 server adapter for the
[Blazingly](https://github.com/sergii-ziborov/blazingly) framework, with
optional rustls TLS (`tls` feature) and an experimental HTTP/2 path (`http2`
feature).

The adapter deliberately owns every socket-runtime and wire-protocol
dependency, so the operation graph, router, DI, and documentation crates stay
runtime-neutral; Tokio, Hyper, and Axum are not in this crate's tree. Parsing
and framing come from `blazingly-wire`, sockets and completion I/O from
Compio. `Server` serves one compiled app; `MulticoreServer` runs
thread-per-core with one non-`Send` app per worker; `ServerLimits` enforces
header, body, chunk, pipeline, and socket-deadline limits before an operation
is dispatched; `shutdown_channel` and `termination_channel` drive graceful
drain. The crate is usable without the `blazingly` facade: anything that
produces an `ExecutableApp` — the facade's macros, or explicit construction
as below — can be served. The facade gates this adapter behind its
non-default `native` feature and exposes it as `blazingly::native`.

```toml
[dependencies]
blazingly-core = "0.1"
blazingly-executor = "0.1"
blazingly-native = "0.1"
```

```rust
use blazingly_core::{HttpMethod, OperationDescriptor, ResponseDescriptor, TypeDescriptor};
use blazingly_executor::{ExecutableApp, ExecutableOperation, ExecutionOutcome, OperationFuture};
use blazingly_native::Server;

fn health() -> ExecutableOperation {
    let descriptor = OperationDescriptor::new(
        HttpMethod::Get,
        "/health",
        "app.health",
        "Reports liveness",
        None,
        vec![ResponseDescriptor::success(
            200,
            Some(TypeDescriptor::new("Health")),
        )],
    )
    .expect("operation id is valid");
    ExecutableOperation::typed(descriptor, |_input| {
        Ok(Box::pin(async {
            ExecutionOutcome::Success {
                status: 200,
                headers: Vec::new(),
                body: Some(b"\"ok\"".to_vec()),
                background: Vec::new(),
            }
        }) as OperationFuture)
    })
}

fn main() -> std::io::Result<()> {
    let app = ExecutableApp::new([health()]).expect("operation graph compiles");
    Server::new(app).serve("127.0.0.1:3000")
}
```

## Links

- [API documentation]https://docs.rs/blazingly-native
- [Getting started]https://github.com/sergii-ziborov/blazingly/blob/main/docs/getting-started.md — the framework picture
- [Repository]https://github.com/sergii-ziborov/blazingly