Skip to content

Standard API map

The rc.6 Standard API is organized by typed namespace. A namespace is a compile-time owner for functions and types; it is not a runtime table.

using Pop.Sequence
using Pop.Text
using Pop.Bytes
namespace StandardExample
function main()
local words = split(trim(" Pop Lang "), " ")
local upper = map<<String, List<String>, String>>(words, toAsciiUpper)
local encoded = Text.encodeUtf8(join<<List<String>>(upper, "-"))
local view = Bytes.view(encoded)
print(Bytes.hexEncode(view))
end

The most important contracts are:

Namespace Main rc.6 surface
Pop.Sequence lazy map, filter, take, drop, concat, fold, scan; collection, search, aggregate, sorting and equality helpers
Pop.Text ASCII case conversion, prefix/suffix/search, trim, replace, split/join, integer parsing, UTF-8 encode/decode and bounded views
Pop.Unicode validated Rune predicates and ASCII conversions
Pop.Bytes immutable views, Bytes.Buffer, encoding/decoding, bitwise operations, comparison, search, and fixed-width endian reads/writes
Pop.Math checked integer bounds, division/remainder, powers, roots, clamp, min/max, signs and number theory helpers
Pop.Time Date, Instant, Duration, deadlines, date-time values, fixed offsets and test/live clocks
Pop.Net typed IPv4/IPv6 values, DNS, TCP/UDP/Unix transports, transfer outcomes, deadlines, cancellation and interface/route snapshots
Pop.File / Pop.Directory explicit access capabilities, handles, bounded read/write, text read, create/remove and directory snapshots
Pop.Terminal / Pop.Process / Pop.Platform output, flush, errors, arguments, executable, OS and architecture facts
Value namespaces Pop.Csv, Pop.Guid, Pop.Locale, Pop.Mime, Pop.Path, Pop.Random, Pop.Uri, Pop.Version

Bytes.Buffer is mutable and reusable. Bytes.toBytes creates an independent immutable snapshot; it does not lend a view into mutable storage. File and network operations require explicit handles or typed transport values and use bounded sizes. APIs that can be absent return an optional; operations that can fail through a recoverable domain result use their documented typed outcome.

HTTP/1.1 is intentionally outside Pop.Standard:

[dependencies]
PopHttp = { path = "../../crates/extensions/http", version = "0.1.0", bubble = "Pop.Http" }
using Pop.Http
local request = request(Method.Get, "/", {}, "")
local response = exchange(stream, request, 1_048_576)?

Pop.Http owns typed Method, Header, Request, and Response values plus bounded parsing, formatting, sending, receiving, and exchange operations. It depends on Pop.Standard transport contracts without changing them.

This page is a guide, not a replacement for metadata. The checked public roots and exact signatures are maintained in libraries/standard/bootstrap/api-baseline.tsv; implementation and XML docs live in crates/libraries/standard/pop/src/. The architecture catalogs explain which families are essential, standard, planned, or capability-limited.