myxce/src/lib/CLAUDE.md
2026-08-10 17:51:51 +08:00

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 — the shared_library('xce', ...) target in meson.build is currently commented out; no .so is 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 under src/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) or src/include/xce/ (a small legacy subset) — not in src/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)