1.4 KiB
1.4 KiB
XCE Shared Library (libxce)
Overview
Shared C library providing common utilities, data structures, and IPC primitives used by the controller, worker, and scheduler daemons, plus the Go apiserver (via CGO, for IPC with the controller).
Build
/xce-build lib # debug + ASAN + clean build + runs tests
For full build system details, see .kiro/steering/build-deployment.md.
Architecture
- Produces
libxce.a(static only — theshared_library('xce', ...)target inmeson.buildis currently commented out; no.sois built) - Linked by all C system components: controller, worker, scheduler
- Public headers consumed by all components live flat in
src/include/(e.g.client.h,netio.h,request.h,vtaskmgr.h,persist.h); only a handful of headers (client_failover.h,cluster.h,cluster_def.h,errnox.h,types.h) live undersrc/include/xce/ - Test suite in
src/lib/testsuite/
Conventions
- C standard: gnu17
- Format with
clang-format(config at repo root if present) - Public API headers go in
src/include/(most headers) orsrc/include/xce/(a small legacy subset) — not insrc/lib/ - Implementation files stay in
src/lib/
Key Files
src/include/— Public header files consumed by all components (src/include/xce/holds a small legacy subset)src/lib/testsuite/— Library unit tests
See Also
- Root guidelines:
CLAUDE.md(repo root)