Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,51 @@ jobs:
- name: Run tests
run: npm test

web:
runs-on: ubuntu-latest
defaults:
run:
working-directory: bindings/web

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "22"

- name: Install Rust toolchain
run: |
rustup show active-toolchain || rustup install
rustup target add wasm32-unknown-unknown

- name: Install wasm-pack
uses: taiki-e/install-action@94a7388bec5d4c8dd93e3ebf09e0ff448f3f6f4d # v2.68.35
with:
tool: wasm-pack

- name: Cache cargo registry and build
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: |
~/.cargo/registry
~/.cargo/git
bindings/web/target
key: ${{ runner.os }}-web-cargo-${{ hashFiles('bindings/web/Cargo.lock') }}
restore-keys: ${{ runner.os }}-web-cargo-

- name: Verify Cargo.lock is up to date
run: cargo metadata --locked --format-version 1 > /dev/null

- name: Check Rust bindings
run: cargo check --features fast-kdf

- name: Build WASM package
run: wasm-pack build --dev --target bundler --out-dir pkg --features fast-kdf

- name: Run JS tests
run: npm test

node-cross-compile:
runs-on: ubuntu-latest
defaults:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ bindings/node/index.d.ts
bindings/node/npm/*/*.node
bindings/node/artifacts/

# Web bindings
bindings/web/pkg/

# Website
website/docs/md/
website-docs/md/
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,15 @@ Or install only what you need:
npm install @open-wallet-standard/core # Node.js SDK
npm install -g @open-wallet-standard/core # Node.js SDK + CLI (provides `ows` command)
npm install @open-wallet-standard/adapters # Framework adapters (viem, Solana, WDK)
npm install @open-wallet-standard/web # Browser WASM SDK
pip install open-wallet-standard # Python
cd ows && cargo build --workspace --release # From source
```

The language bindings are **fully self-contained** — they embed the Rust core via native FFI. Installing globally with `-g` also provides the `ows` CLI. The [`@open-wallet-standard/adapters`](https://www.npmjs.com/package/@open-wallet-standard/adapters) package plugs an OWS wallet into viem, `@solana/web3.js`, and the Tether WDK.

For websites, [`@open-wallet-standard/web`](bindings/web) provides a WASM SDK with browser storage adapters for OWS wallet, API-key, and policy artifacts.

## Quick Start

```bash
Expand Down Expand Up @@ -153,6 +156,7 @@ Reference implementation documentation:
- [Quickstart](docs/quickstart.md)
- [CLI Reference](docs/sdk-cli.md)
- [Node.js SDK](docs/sdk-node.md)
- [Browser WASM SDK](docs/sdk-web.md)
- [Python SDK](docs/sdk-python.md)
- [Policy Engine Implementation Guide](docs/03-policy-engine.md)

Expand Down
Loading