AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
libtracer는 사양 우선 고성능 프로토콜로, 단일 제로복사 형식에서 분산 상태와 메시징을 지원합니다
libtracer is a spec-first, high-performance protocol for distributed state and messaging over a single zero-copy wire format — pub/sub streams, read/write/await, live configuration, and introspecti...
개발 도구C++ · PythonGitHub @avatarsd-llc온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Lightweight zero-copy decentralized graph-based networking protocol for AI era
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A decentralized, zero-copy, graph-based pub/sub protocol — one wire format from a 16 KB Cortex‑M0 to a GPU, across vendors and transports.
-blue)README 전문 보기 ↗A decentralized, zero-copy, graph-based pub/sub protocol — one wire format from a 16 KB Cortex‑M0 to a GPU, across vendors and transports.
A libtracer node is a graph of addressable vertices. The load‑bearing idea: the same TLV bytes are the wire encoding, the in‑memory value, and the graph node — so publishing moves zero bytes (a refcount bump), and any node can route, translate, or relay another node's state without understanding it. Big things connect to small things; small things connect to each other over whatever transport is available (UART, CAN, BLE, Wi‑Fi, WebSocket, UDP, QUIC) or through any node bridging to something incompatible.
This repo is not just a library — it defines a protocol the community can implement, extend, and interoperate around, including across competing products and proprietary ecosystems.
📖 Full documentation: libtracer.avatarsd.com — architecture, the normative spec, reproducible benchmarks, worked examples, and the implementation capability matrix.
memcpy). Fan‑out to N subscribers is N refcount bumps. Egress lowers a rope straight to the transport's scatter‑gather — one syscall per composite, no flatten. The borrowed read path is flat ~80 ns even at 8 KB.router/orchestrator roles. The mesh is pure‑decentralized and self‑healing.ioctl. The entire data API is read / write / await — no connect/subscribe/disconnect. Control (subscriptions, QoS, ACLs, liveness) is field‑writes on a : plane — the vertex's ioctl. Subscribing is a consumer‑initiated write into the producer's subscriber list; delivery is an ordinary write.: fields. A Cortex‑M0 is a first‑class node (a 16 KiB stripped‑flash target for the required‑module set — the committed sentinel measures 20,937 B today and runs in warn mode; no malloc/snprintf on the hot path, ISR‑safe).libtracer is a spec first, then implementations. The C++ core is the golden reference; the Rust and TypeScript cores are from‑scratch native reimplementations kept byte‑identical to it by the same shared conformance vectors (ADR‑0028). Every claim below is backed by a CI‑run test — see the capability matrix (generated from that evidence, so it can't drift).
| Implementation | Scope | Status |
|---|---|---|
C++ core (core/) | the full protocol — codec, graph runtime, FWD routing, transports (tcp/udp/ws/quic/webtransport/can) | reference; extensive test suite |
Rust (bindings/rust/) | native #![no_std] wire codec + typed tier (builders, PATH, ERROR registry, FWD/FIELD) — no transports/runtime yet | byte‑verified; pre‑release |
TypeScript (bindings/typescript/) | native browser/edge — codec + client (read/write/await/subscribe) + WebSocket/WebTransport | byte‑verified; client/transports experimental |
ESP‑IDF (integrations/esp-idf/) | packages the full C++ node as a managed component (CI‑built esp32c6/c3 + linux) | working |
PlatformIO (integrations/platformio/) | packages + compiles the portable core (codec/graph/tcp/udp/ws/can; on espressif32 no ws — the POSIX pair is excluded per #947/#984, see the integration README) | working; esp32 CAN via a best‑effort build hook (board‑unverified) |
ESPHome (integrations/esphome/) | platform packaging |
C++ (the reference):
cmake -S core -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build
Then find_package(libtracer) + target_link_libraries(app PRIVATE libtracer::libtracer). See the getting‑started guide.
Other surfaces (published in lockstep by the same release tag):
npm install @avatarsd-llc/libtracer # TypeScript codec
cargo add libtracer # Rust codec
# ESP-IDF: idf.py add-dependency "avatarsd-llc/libtracer"
dst path in the frame.origin_peer_id in v1); PKI/key management is a deferred module.A deliberate separation lets vendors build proprietary products on top without fragmenting the ecosystem, and lets the community contribute without fearing capture:
docs/spec/) — RFC‑2119 + conformance vectors. An implementation is compatible if it passes the vectors for a spec version. Changes go through the RFC process.docs/implementations.md.libtracer/
├── core/ Reference C/C++ implementation (Apache 2.0) — src, include, tests
│ └── examples/ Runnable, CI-built example programs (CC0)
├── backends/ Vendor L0 memory backends — cuda/ (GPU); each its own CMake project
├── bindings/ Native cores — rust/ (crates.io), typescript/ (npm @avatarsd-llc/*)
├── integrations/ Platform packaging — esp-idf/ (working) · platformio/ · esphome/
├── bench/ libtracer↔Zenoh benchmark harness (feeds the live perf page)
├── docs/ Spec (normative) · reference (descriptive) · ADRs (rationale)
├── tests/conformance/ Cross-implementation vectors + run-all.py driver
└── CONTEXT.md Canonical glossary
Every change lands via a pull request; commits are DCO‑signed (git commit -s). Spec changes go through an RFC. Start with CONTRIBUTING.md and the architecture overview.
| Scope | License |
|---|---|
Reference implementation (core/, bindings/, integrations/) | Apache 2.0 (LICENSE) |
Protocol specification (docs/spec/) | CC BY 4.0 |
Example code (core/examples/) | CC0 1.0 (examples/LICENSE) |
Copyright avatarsd LLC for company‑authored work; outside contributions remain their authors', licensed per the scope above. The "libtracer" name is a trademark of avatarsd LLC (TRADEMARKS.md).
| placeholder stub |
ROS 2 (rmw_tracer, bindings/ros2/) | drop‑in RMW over the C++ graph | early stub |