JS-001: (PROPOSAL) ABC containers in js/ BASS/mmap-backed buffers, the bindings, and the JS API

Now
STALE

Proposal for exposing a LIMITED set of ABC containers (u64/u32 typed buffers, kv64/kv32 maps, wh64/wh128 sorted runs) to JavaScript in the JABC (JavaScriptCore) layer, backed by JS-owned ArrayBuffers and mmap'd regions rather than C-side BASS. Research-only; options + recommendations, no implementation. Method: Issues.

Input

Context

Goals

Constraints

WIP

Design decisions (options + recommendation)

let h = new abc.KV64(4096); // structured shim (open-addr hash) h.set(key, val); h.get(key); h.has(key); h.del(key); h.size;

let w = new abc.WH128(256); // sorted (key,val) run w.insert(key, val); w.findGE(key); w.merge(other); // wh128sFindGE / run-merge

Only KV*/WH* are objects; u64/u32 are just function namespaces over native arrays.

Mapping (ABC JS)

Open questions / risks

Outcome