crossbind
GitHub
GUIDE · INDEX

Guide

Getting started walks from an empty directory to C++ running in your app. Concepts explain the pieces you will meet after that - the build, the bindings, the filesystem, threads. Everything here is a page you can read end to end in a few minutes.

Getting started

START HERE
Introduction
What crossbind does, what one import buys you, and where the output runs.
START HERE
Quick start
Prerequisites, a new project or an existing one, and your first call into C++.
GETTING STARTED
Bundlers
Vite, Webpack, Rspack, Rollup, Metro - and the escape hatch when you have none.
GETTING STARTED
Runtimes
Browser, Node, Cloudflare Workers, React Native and WASI - what each one supports.

Concepts

CONCEPTS
Architecture
What runs when you build: targets, bridges, the toolchain boundary, and the cache.
CONCEPTS
C++ bindings
The subset of C++ that binds automatically, the type table, and how to wrap the rest.
CONCEPTS
Rust
Import a crates.io crate or a local .rs file with the same one-line import.
CONCEPTS
Packages
Use a prebuilt C++ library from npm, or publish your own the same way.
CONCEPTS
Filesystem
Where files live per runtime: OPFS, in-memory, the host disk - and how to mount user files.
CONCEPTS
Threading and workers
st versus mt, useWorker, and the COOP/COEP headers production needs.
CONCEPTS
Assets and data files
Ship the data files a native library needs, and point it at them on every platform.
CONCEPTS
WASI commands
Compile to a single wasm command, or run the prebuilt CLI tools straight from npm.
CONCEPTS
Configuration
Everything cppjs.config.js can declare, and how its paths resolve.

Help

HELP
Troubleshooting
The errors people actually hit, and the standard fix for each.
Type to search every guide page and section.
↑↓ navigate↵ openesc close