This directory contains the TinyChain client SDKs and related tooling.
It is designed to be split into its own repository and vendored into the main
TinyChain runtime workspace as the client/ Git submodule.
py/– Python client (tinychain) plus tests and tooling.js/– Node.js client package (@tinychain/js) plus documentation.web/– web integration layer (Express + SSR/hydration examples).rust/– Rust-side client tooling, including the PyO3 local backend (tinychain-local).
See CONTRIBUTING.md for
client contribution guidelines and legal terms.
- Keep client package versions aligned with the
tinychaincrate version intc-serverunless a package explicitly documents a reason to diverge. - For JavaScript,
@tinychain/jsshould track that same version line.
When bumping versions, update the runtime and clients together in one change:
- Update the
tinychaincrate version intc-server(source of truth). - Update
client/js/package.jsonto the same version line. - Update
client/webdefaults/docs that mention the service/client version (for example.env.example, SSR defaults, and README snippets). - Refresh lockfiles after any package.json changes.
- Run the client validation surface before merge:
cd client/web && npm run test:all(Node 20.x)client/pyandclient/rusttests relevant to changed code paths
Some docs and developer workflows (PyO3 local backend, building WASM example
artifacts) depend on the TinyChain runtime sources (e.g., tc-server, tc-wasm,
and build scripts). When this repo is vendored as a submodule, those live in the
parent checkout; otherwise you will need a separate runtime checkout.