Packages
C+ is C plus packages. The language core is small on purpose; capability comes from packages, including the standard library. stdlib is a vendored package like any other, not a language built-in.
How a package works
Every package is a directory under vendor/ with a Cplus.toml manifest, a <package-name>.cplus library entry, and in-package #[test] functions you can run with cd vendor/<pkg> && cpc test. To use one, add it to your manifest and import it:
[dependencies]
stdlib = "*"
json = "*"
import "stdlib/io" as io;
import "json/json" as json;
The driver walks one directory up from your project to resolve sibling vendor dependencies, so no per-package symlinks are needed beyond the canonical vendor/ checkout.
You can populate vendor/ by hand, or let cplus-pm, the standalone package manager, resolve and fetch dependencies for you (cplus-pm install).
The standard library
- stdlib — I/O, collections, ownership wrappers, concurrency, files, and networking. The package you reach for first.
GPU & numerics
C+ talks to GPUs and BLAS as a consumer of the vendor SDKs, through plain C FFI with Drop-managed handles. See GPU & numerics for the backend matrix and how to pick one.
- metal — typed Metal and MPS bindings for Apple GPU compute.
- cuda — CUDA Runtime + cuBLAS bindings for NVIDIA GPUs.
- accelerate — Apple CPU numerics (BLAS, vDSP).
- cblas — cross-platform CPU BLAS (OpenBLAS / Netlib / MKL).
- simd — portable
f32x4math plus integer lane helpers.
AI
- llama_cpp — bindings for llama.cpp with a safe
Sessionfacade for LLM inference. - coreai — a Swift bridge to Apple's CoreAI (macOS).
Agent surface
Expose a C+ app to an external agent — described, driven, and observed over a consent-gated bridge. See Agent surface for the full story.
- agent_core — the framework-agnostic authorization brain.
- agent_appkit — the macOS GUI backend (live NSView tree → surface).
- agent_mcp — the JSON-RPC 2.0 / MCP bridge.
Platform
- appkit — typed Cocoa / AppKit bindings for native macOS apps.
- jni — minimal Java Native Interface bindings.
Utilities
- clap — command-line argument parsing with a fluent builder.
- json — a typed-enum JSON parser and serializer.
- log — a leveled, zero-allocation structured logger.
- uuid — RFC 4122 v4 UUIDs.
- arena — a growable bump-pointer arena.
- static-arena — a fixed-size, stack-resident arena.
Real-time
- rt — lock-free primitives for the real-time contracts (
rtand the platformrt_darwin).