bynk-std
The first-party sources of the Bynk
standard library, as data: the .bynk sources and TypeScript bindings the
toolchain ships, embedded with include_str!, plus the metadata it reads about
them.
It holds:
- the
bynksurface adapter (Clock,Random,Logger,Fetch,Secrets,Locale,Idempotency,Events) and its per-platform bindings for Cloudflare, Node and the browser; - the Bynk-written commons:
bynk.list,bynk.map,bynk.string,bynk.localeandbynk.locale.types; - the
bynk.cloudflareplatform adapter (Kv, and the experimentalService) and its binding; - the experimental
bynk.cryptoadapter (Crypto: digests, HMAC, constant-time comparison, sign and verify over Web Crypto) and its binding for each platform; UNITS, the registry of first-party units: each one's name, kind, source, binding, permanent id block, platform nativity andenv-taking providers.bynk-checkinjects from it, so adding a unit is an entry plus its files;Platform, and the views over the registry:FIRSTPARTY_SOURCES,platform_ofandprovider_takes_env.
The sources are in lib/: the portable layers in lib/core/, the platform
adapter in lib/cloudflare/ and the cryptography adapter in lib/crypto/.
Nothing in lib/core/ depends on lib/cloudflare/ or lib/crypto/.
The crate holds no logic. bynk-check
parses and injects these sources when a project uses or consumes them, and
re-exports this crate unchanged as bynk_check::firstparty.
Where it sits
bynk-std has no dependencies. It is a second root beside the syntax leaf, read
by bynk-check:
bynk-syntax lexer, parser, AST, CompileError, diagnostic codes
├── bynk-project project model: discovery, unit graph, paths
├── bynk-ts the TypeScript tree and its printer
├── bynk-render diagnostic rendering
├── bynk-fmt the formatter
└── bynk-check name resolution and type checking + project, std, fmt
├── bynk-ir declaration-level IR
│ └── bynk-lower AST → IR helpers
├── bynk-emit build sequencing, TS emission + ts, ir, lower, project
│ ├── bynk-strip TS → JS type-stripping + ts
│ └── bynk-driver shared CLI command bodies + fmt, render, ts
└── bynk-ide non-bailing editor analysis + project, fmt
bynk-std first-party sources and bindings, as data
Each crate depends on its parent in the tree, plus any crates listed after
its +. The front-ends sit on top: the bynkc and bynk CLIs over
bynk-driver, the bynkc-lsp language server (bynk-lsp) over bynk-ide, and
the unpublished bynk-wasm playground module over bynk-emit, bynk-strip,
and bynk-ide.
Most users compile Bynk through the bynkc /
bynk CLIs rather than depending on this crate
directly.
Use
[]
= "0.405"
use ;
for in FIRSTPARTY_SOURCES
let binding = Node.bynk_binding_source;
See the API docs for the full surface.
License
Licensed under either of Apache-2.0 or MIT at your option.