These documents describe the CoQUIC project API and integration model.

Reference material for RAG is stored in Qdrant. The repository does not require a checked-in RFC corpus for runtime search or QA.

API Hierarchy

The public C++ API is the compatibility boundary exported from include/coquic/. Inside that boundary, callers choose the lowest layer that matches how much control they need.

text
include/coquic/ public C++ API
+-- coquic::core
|   Lowest layer: sans-I/O endpoint, typed inputs, typed effects.
+-- coquic::quic
|   Transport facade: endpoint, connection, and stream handles over core.
+-- coquic::http3
    Application protocol layer: HTTP/3 state that emits QUIC connection inputs.

coquic::quic wraps coquic::core. coquic::http3 composes with either core or quic: it does not own sockets or endpoints, and it feeds work back to the matching QUIC connection.

Native bindings are separate ABI surfaces built on top of the C++ layers:

text
include/coquic/ffi/ native binding ABI
+-- C FFI
    C ABI wrappers over the sans-I/O Core, QUIC facade, and HTTP/3 APIs.
bindings/rust/coquic
|-- coquic-sys
|   Low-level safe owners and borrowed views over the C FFI.
|-- coquic-rs
|   Ergonomic Rust QUIC facade over coquic-sys.
bench/coquic-rust-perf
+-- Tokio UDP perf runtime over coquic-rs.
bindings/javascript
|-- Node.js N-API wrapper.
bench/coquic-js-perf
+-- JavaScript UDP perf runtime over the Node.js wrapper.
bindings/python
|-- ctypes wrapper and Python QUIC facade.
bench/coquic-python-perf
+-- Python UDP perf runtime over the Python wrapper.
bindings/go
|-- cgo wrapper.
bench/coquic-go-perf
+-- Go UDP perf runtime over the Go wrapper.

Contents

API Surface

  • Public API: API overview and compatibility boundary.
  • Core API: sans-I/O endpoint, inputs, effects, and timers.
  • QUIC Facade API: transport facade over the core endpoint.
  • HTTP/3 API: request/response layer and QUIC input handoff.

Native Bindings

Runtime

Reference Corpus

RAG search and QA read indexed section payloads from Qdrant. Local source documents are only needed when explicitly running indexing commands with a chosen --source directory.