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 |
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 |
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>oralloc_result<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.
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.