Operational Library Reference
This page catalogs the ordinary seed packages staged by the operational LLVM
compiler from seed/compiler/llvm/libs. It does not treat every directory in
the top-level Grove compatibility tree as a current package.
Import and build model
Repository core packages use bare imports:
use "io"
use "parse"
use "vec"
The launcher's incremental build and run paths resolve these names, build
profile/target-compatible native and .sdi artifacts, and reuse exact installed
generations. The narrower check subcommand currently invokes direct source
checking and does not stage a missing bare package first. An explicit --static
build selects matching static seed dependencies; ordinary hosted linking uses
the profile-compatible dynamic artifacts by default.
Availability remains constrained by each package manifest and the canonical target capability matrix. A package being present in the source tree does not add runtime services to a target that lacks them.
Package catalog
| Package | Main public surface | Role |
|---|---|---|
box |
box_new, view, into_inner |
Fallible unique owned indirection for recursive or large values |
byte_buffer |
byte_buffer_new, reserve, push, extend, resize, into_bytes |
Capacity-aware initialized byte construction with checked fallible growth |
fibonacci |
fibonacci_i64 |
Allocation-free checked iterative Fibonacci returning None for negative input or overflow |
file |
write_text, write_stdout, write_stderr, format variants |
Descriptor-based hosted output compatibility wrappers |
format |
bool_text, option_bool_text |
Small static text-format helpers |
hkdf |
hkdf_extract, hkdf_expand |
RFC 5869 HKDF-SHA256 pseudo-random functions (extract + expand) over the hmac_sha256 primitive |
io |
input_stream, output_buffer, read/write/all and format operations |
Typed partial and buffered hosted I/O with io_error |
math |
sqrt_*, abs_*, min_*, max_* |
Portable inline f32/f64 operations |
net |
open_ipv4_stream, socket |
Minimal hosted owned IPv4 stream-socket wrapper |
parse |
parse_i*, parse_u*, parse_*_or |
Checked integer parsing with typed parse_error and explicit defaults |
process |
current_id, argument_count, argument, environment, process_fork, process_exec_args, process_exec_args_with_environment, process_change_directory, process_wait |
Allocation-free process/environment views and bounded hosted subprocess primitives |
serialize |
encode_bool, decode_bool |
Minimal representative safe serialization surface |
mobile |
platform bindings, lifecycle, input, display, clipboard | Android API 21/29/37 ARM64 AVD and iOS 26.5 ARM64 simulator execution |
path_file |
file_descriptor, open, read, write, metadata |
Owned path-file descriptors for checked sequential I/O, atomic rename, and advisory locking |
slice |
slice_split_at_mut, reverse, rotate, window helpers |
Generic allocation-free algorithms over native typed slices |
sort |
scalar sort functions and sort_by_key |
In-place mutable-slice sorting, including static key dispatch for move-only values |
system |
address wrappers, page tables, MMIO, atomics, bump allocation, pinned/DMA values | Audited freestanding systems abstractions over explicit unsafe construction |
task |
channels, joins, typed results, events, cancellation, waitgroups, semaphores, barriers, locks | Structured scheduler-backed communication and synchronization |
text |
utf8_next, utf8_count, utf8_validate, split_ascii |
Allocation-free UTF-8 scalar validation/counting and ASCII-delimited token cursors |
time |
monotonic_ms, wall_time_seconds, wall_time_ms |
Hosted elapsed-time and Unix wall-clock values |
tls13 |
tls13_core_seal/open, tls13_chacha_seal/open, tls13_record_pack/unpack, tls13_hkdf_expand_label, tls13_derive_secret, traffic secret/key/iv derivation |
Pure-seed TLS 1.3 ChaCha20-Poly1305 AEAD, record protect/unprotect, and RFC 8446 §7 key schedule; no handshake/X.509 yet |
vec |
vec, queue, set, map and fallible mutation APIs |
Generic owned collections with exact cleanup and checked views |
Application packages in the top-level Grove tree include std-uuid 0.2.
It provides allocation-free UUID text validation, strict RFC 9562 UUIDv7
validation, deterministic uuid_v7_from_parts, and fallible uuid_v7
generation backed by hosted wall-clock milliseconds plus 74 bits from the
audited operating-system entropy package. UUIDs remain identifiers rather
than credentials.
Ownership and error conventions
Operational packages follow the language ownership model:
- constructors that allocate return
Result<T, alloc_error>orAllocResult<T>; - owned values move and run their destructor exactly once on structured exits;
- borrowed
strand slice results preserve receiver/input provenance; @mutreceiver methods hold exclusive call-scoped loans and persist changes in the caller;- explicit consuming helpers transfer ownership rather than hiding clones;
- raw pointer construction remains
unsafe, even when later methods are safe because the wrapper preserves the audited invariant; - recoverable I/O and parsing failures use package ADTs rather than sentinel values or implicit process termination.
I/O
New code should prefer io over the narrower file compatibility wrappers.
The important distinction is partial input:
input_stream.read(mut []u8)returns a typed data/EOF count;stdin_read_all()is available when retaining the complete input is desired;- output operations distinguish one write from
write_all; - f-string
format_argscan be written directly without allocating an owned string.
byte_buffer and io share the initialized-prefix contract. Safe callers
never observe spare uninitialized capacity.
Grove command execution
The Grove command package provides bounded argv-based child execution for
hosted applications. command_run_configured_with_stdin_file has the same
working-directory, environment, timeout, and capture-limit contract as
command_run_configured, and additionally connects an existing regular input
file to the child's standard input. The file is opened without following a
final symlink and all parent/child descriptors retain exact cleanup. This is
useful for bounded stdio protocols such as language servers without invoking a
shell or retaining a second in-memory copy of the framed request.
Collections and slices
vec<t> is the canonical growable generic sequence. It provides fallible
capacity and push operations, checked update/pop, read-only and mutable views,
and exact cleanup for move-only elements. Queue, set, and map types use the same
ownership model.
Native []t and mut []t remain the standard borrowed sequence types. The
slice package adds algorithms; checked indexing, slicing, fill,
copy_from, and split_at_mut are core operations rather than a legacy raw
fat-slice wrapper.
Tasks
task is an ordinary package, not a set of language built-ins. It provides:
- ownership-split bounded channels;
- typed one-shot joins and
Result<T, E>task results; - events and cancellation;
- waitgroups, semaphores, barriers, and locks.
Endpoints and tickets retain their linear/exact-cleanup contracts. Direct
spawn remains lexically structured, and postfix ? cannot cross the spawned
body boundary while that body ABI returns void.
Systems package
system targets declared freestanding profiles. Raw addresses, MMIO pointers,
atomic storage, pinned buffers, DMA buffers, and allocator backing storage are
created through unsafe constructors. Safe methods rely on those constructors'
alignment, lifetime, address-space, synchronization, and ownership obligations.
Presence of this package does not imply that all hosted or freestanding targets provide every system service. Consult System Primitives and the Gate 14 target matrix.
Grove package inventory
The top-level grove/libs/ corpus completed G01–G22 classification: 218
manifested packages are covered exactly once by the Grove gate harness. Ported
packages expose current source-elided interfaces; archived packages expose only
their documented validation/unavailability boundary. See
Grove Compatibility Tree and Library Roadmap.
Operational network client packages
| Package | Role | Current boundary |
|---|---|---|
std-url |
Allocation-free bounded absolute-URL parser | Borrowed component ranges, bracketed IPv6, checked ports; no IDNA/relative resolution |
tls |
Owned OpenSSL 3 server/client contexts and connections | TLS 1.2 minimum; client certificate and hostname/IP verification plus typed handshake timeout; macOS ARM64 execution and Linux AArch64 cross-build |
http-client |
Pure-seed HTTP/1.1 client (no OpenSSL): GET over raw TCP or the tls13 transport |
Typed limits (connect/io timeouts, head/header/body caps), optional Authorization, Content-Length/chunked/close-delimited framing, owned bounded Location/Retry-After, blocking read() cursor, and an audio source bridge for the shared codec callback source; DNS via the pure-seed dns package with IPv4-literal and localhost fast paths; no cookies, redirects, decompression, or pooling |
http-client-tls |
Thin pure-seed wrapper preserving the TLS-context API (system/open/enabled, get_host_authority_authorized) over http-client + tls13 |
Same verified TLS 1.3 stack as the server-verified e2e; hostname verification of the CertificateVerify proof of key possession; system root-store distribution remains a documented gap |
http-fetch |
Bounded-redirect absolute HTTP/HTTPS URL composition over the pure-seed clients | System IPv4 resolution, explicit authority, relative-reference and dot-segment handling, fragment stripping, redirect limit, HTTPS downgrade rejection, HTTPS-only Authorization confined to same-origin redirects, and caller-bounded capped exponential retry/backoff for transient GET failures; no resolver cancellation, cache, or policy hooks |
audio-network-source |
Exact-ownership adapter from an HTTP/HTTPS body to the shared codec callback source | HTTP convenience getter plus generic body transfer; retry/cache/live-stream policy remains above it; applications link http_client_source.c for the callback bridge |
The full limits and target evidence are recorded in the G12 and G14 baselines.
Operational adaptive UI remote-update packages
| Package | Role | Current boundary |
|---|---|---|
grove-ui-plugin-update |
Authenticated catalog selection and transactional plugin artifact upgrade | Three-attempt transient retry, same-origin HTTPS Authorization, signed/fresh/monotonic catalogs, exact package-version binding, trust/permission preflight, generation history, and optional exact-URL cache fallback |
grove-ui-plugin-remote-cache |
Bounded opaque cache for remote plugin payloads | Caller-selected existing root, SHA-256 exact-URL keys, private part files, per-entry OS locks, sync, atomic replacement, typed misses, and 64-MiB ceiling; all hits remain untrusted and require caller revalidation |
grove-ui-plugin-trust-distribution |
Verified-HTTPS delivery of signed trust-policy envelopes | Root-pinned verification remains application-visible; cached fallback is transient-only and only already-verified envelopes are stored |
The cache does not implement conditional HTTP validators, expiry, eviction, shared quota, encryption, or background maintenance. Native macOS ARM64, Linux x86-64, and Windows x86-64/Wine debug/release evidence is frozen by the update and trust-distribution baselines.
Ridge v0.3 packages
The completed Ridge v0.3 local-database stack is split into ordinary Grove packages:
| Package | Role |
|---|---|
ridge |
B+Tree storage, WAL, MVCC, constraints, backup/recovery, integrity, and vacuum |
ridge_sql |
Bounded multi-column SQL, transactions, indexes, planner, spill, JSON, analytics, and observability |
ridge_pgwire |
Loopback TLS/password pgwire server and bounded text extended protocol |
ridge_timeseries |
Persistent composite time keys, range/bucket/rate/retention/downsampling operations |
ridge_fulltext |
Persistent normalized terms/positions, boolean/prefix/phrase search, BM25 subset, highlights |
ridge_vector |
Fixed f32 vectors, exact top-k, bounded persistent HNSW, filters, recall/memory limits |
ridge_ops |
Commit-boundary archive PITR, restore drills, migrations, maintenance, health/metrics/logs/quotas |
These are bounded local-database contracts, not PostgreSQL parity or cluster services. See Ridge Database and the Ridge capability document for the exact supported shapes and exclusions.
Sources of truth
- package source and manifests:
seed/compiler/llvm/libs/*/; - compiler-known operations: Core Built-ins and Standard Libraries;
- ownership contracts: Ownership;
- implementation and target limits: Current Status.