C+
Packages · View as Markdown

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 f32x4 math plus integer lane helpers.

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 (rt and the platform rt_darwin).