Project Structure

An overview of Camelot's standardized directory topology, designed to enforce strict separation between the public API, internal engine, and build artifacts.

Camelot follows a strict, standardized directory topology to ensure separation of concerns between the Public API, Internal Engine, and

The Topology

Camelot separates the "Contract" (Header files) from the "Implementation" (Source files) to ensure ABI stability.

Camelot/
├── build/               # [Generated] Intermediate object files and static library

├── include/             # PUBLIC API (The Contract)
│   ├── camelot/         # Core Kernel (memory, io)
│   ├── ds/              # Data Structures (list, table)
│   └── camelot.h        # Main entry point & Feature Flags

├── src/                 # INTERNAL ENGINE (The Implementation)
│   ├── memory/          # Raw Arena logic
│   ├── io/              # OS System Call wrappers
│   └── ds/              # Collection algorithms

├── tests/               # Unit Verification Suite
│   └── main.c           # Test Runner Entry Point

└── packages/dist/       # [Generated] Final Distribution
    ├── include/         # Headers ready for /usr/local/include
    ├── lib/             # Library ready for /usr/local/lib
    └── install.sh       # Portable Installer Script

Critical Files

Architecture & Build

  • camelot.h: The single header file users include. It handles versioning, feature flags, and safety enforcement.

  • Makefile: The build automation script. Run make dist to compile the library and generate the packages/ folder.

  • ROLE_MAP.md: Defines the strict architectural boundaries (e.g., Memory cannot depend on IO) required by ASC-1.2.

Configuration

  • .clang-format: The absolute authority on code style. The CI pipeline rejects any commit that does not match these rules.

  • .editorconfig: Ensures consistent indentation (Tabs vs Spaces) across different IDEs (VS Code, Vim, etc.).

  • .gitignore: Prevents build artifacts (.o, .a, packages/) from polluting the repository.

Governance

  • LICENSE: The Mozilla Public License 2.0 (MPL-2.0). Defines how the code can be used and distributed.

  • CONTRIBUTING.md: The engineering standards manual. Explains the "Avant Systems Canon" (ASC-1.2) to new contributors.

  • SECURITY.md: Protocols for reporting vulnerabilities and the project's threat model.

  • CITATION.cff: A citation file for researchers to correctly reference Camelot in academic papers.

Last updated