# 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:

```toml
[dependencies]
stdlib = "*"
json   = "*"
```

```cplus
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.

## The standard library

- [stdlib](/docs/packages/stdlib) — I/O, collections, ownership wrappers, concurrency, files, and networking. The package you reach for first.

## Platform & GPU

- [appkit](/docs/packages/appkit) — typed Cocoa / AppKit bindings for native macOS apps.
- [metal](/docs/packages/metal) — typed Metal and MPS bindings for GPU compute.
- [accelerate](/docs/packages/accelerate) — Apple CPU-SIMD numerics (BLAS, vDSP).
- [jni](/docs/packages/jni) — minimal Java Native Interface bindings.

## Math

- [simd](/docs/packages/simd) — 3D math on `f32x4` plus integer lane helpers.

## Utilities

- [clap](/docs/packages/clap) — command-line argument parsing with a fluent builder.
- [json](/docs/packages/json) — a typed-enum JSON parser and serializer.
- [log](/docs/packages/log) — a leveled, zero-allocation structured logger.
- [uuid](/docs/packages/uuid) — RFC 4122 v4 UUIDs.
- [arena](/docs/packages/arena) — a growable bump-pointer arena.
- [static-arena](/docs/packages/static-arena) — a fixed-size, stack-resident arena.

## Real-time

- [rt](/docs/packages/rt) — lock-free primitives for the real-time contracts (`rt` and the platform `rt_darwin`).
