# crossbind > crossbind builds and packages C++ and Rust for JavaScript applications, generating the bindings from the header or crate you already own. It produces WebAssembly for browsers, Node.js and Cloudflare Workers, and native iOS and Android libraries for React Native. A separate C/C++ target produces WASI command components that run without a JavaScript host; Rust is not supported on that target yet. Documentation snapshot resolved on 9 October 2026: crossbind 2.0.0-beta.62 (beta channel, npm dist-tag `beta`), published 29 September 2026 ([changelog](https://crossbind.dev/changelog/#2.0.0-beta.62)); scaffolder create-crossbind 2.0.0-beta.62. Install every crossbind package, ports included, with the `@beta` suffix; the default npm tag is older. Packages are versioned independently: pin exact versions and keep the lockfile for a setup you can reproduce. Every page below is also served as Markdown at its own path plus `.md`, and [llms-full.txt](https://crossbind.dev/llms-full.txt) is all of them in one file. The home page is [index.md](https://crossbind.dev/index.md). - Browser, Node.js and edge builds are WebAssembly with a target-specific JavaScript loader; React Native runs native iOS and Android libraries through JSI, and Expo needs a development build. - WASI is a separate C/C++ command target: no JavaScript host, no `initNative()`, a WASI runtime such as wasmtime 47+ required, and no Rust yet. - A prebuilt port skips compiling the upstream library; your own code, the generated bindings and the final link still go through the build toolchain, and you install one platform variant per target you build. - `crossbind.config.js` is build-time configuration and `initNative(opts)` is runtime configuration; await `initNative()`, and with `useWorker: true` await every call. - Browser multithreading (`runtime: 'mt'`) needs COOP/COEP headers in production; `useWorker` is an independent choice that crossbind's OPFS integration requires. ## Guide - [Guide](https://crossbind.dev/guide.md): Every guide page, grouped by what you are trying to do. ### Getting started - [Introduction](https://crossbind.dev/guide/introduction.md): What crossbind does, what one import buys you, and where the output runs. - [Quick start](https://crossbind.dev/guide/quick-start.md): Prerequisites, a new project or an existing one, and your first call into C++. - [Bundlers](https://crossbind.dev/guide/bundlers.md): Vite, Webpack, Rspack, Rollup, Metro - and the escape hatch when you have none. - [Runtimes](https://crossbind.dev/guide/runtimes.md): Browser, Node, Cloudflare Workers, React Native and WASI - what each one supports. ### Concepts - [Architecture](https://crossbind.dev/guide/architecture.md): What runs when you build: targets, bridges, the toolchain boundary, and the cache. - [C++ bindings](https://crossbind.dev/guide/bindings.md): The subset of C++ that binds automatically, the type table, and how to wrap the rest. - [Rust](https://crossbind.dev/guide/rust.md): Import a crates.io crate or a local .rs file with the same one-line import. - [Libraries](https://crossbind.dev/guide/libraries.md): Use a prebuilt C++ library from npm, or publish your own the same way. - [Filesystem](https://crossbind.dev/guide/filesystem.md): Where files live per runtime: OPFS, in-memory, the host disk - and how to mount user files. - [Threading and workers](https://crossbind.dev/guide/threading.md): st versus mt, useWorker, and the COOP/COEP headers production needs. - [Assets and data files](https://crossbind.dev/guide/assets.md): Ship the data files a native library needs, and point it at them on every platform. - [WASI commands](https://crossbind.dev/guide/wasi.md): Compile to a single wasm command, or run the prebuilt CLI tools straight from npm. - [Configuration](https://crossbind.dev/guide/configuration.md): Everything crossbind.config.js can declare, and how its paths resolve. ### Help - [Troubleshooting](https://crossbind.dev/guide/troubleshooting.md): The errors people actually hit, and the standard fix for each. - [Migrating from cpp.js 1.x](https://crossbind.dev/guide/migration.md): What changed between cpp.js 1.0.4 and crossbind 2.0: names, packages, config, CLI and runtime API, with the steps to move a project. ## API reference - [API reference](https://crossbind.dev/api.md): The two API surfaces every project touches, the third one package authors use, the CLI, and where each option is documented. - [init.md](https://crossbind.dev/api/init.md): `initNative(opts)` - the runtime entry point and the module helpers it returns. - [crossbind-config.md](https://crossbind.dev/api/crossbind-config.md): `crossbind.config.js` field by field: dependencies, paths, targets, runtime flags. - [crossbind-build.md](https://crossbind.dev/api/crossbind-build.md): `crossbind.build.js` lifecycle hooks for package authors. - [build-state.md](https://crossbind.dev/api/build-state.md): the `state` and `target` shapes hooks receive, and the inventory of built-in build targets. - [filesystem.md](https://crossbind.dev/api/filesystem.md): OPFS, memfs, node-fs and edge filesystems, and the `useWorker` requirement. - [threading.md](https://crossbind.dev/api/threading.md): `runtime: 'st' | 'mt'`, `useWorker`, COOP/COEP and edge-runtime limits. - [cpp-binding-rules.md](https://crossbind.dev/api/cpp-binding-rules.md): what the auto-binder accepts and the wrapper pattern for the rest. - [rust.md](https://crossbind.dev/api/rust.md): `cargo:` crate imports, app-local `.rs` sources and `export.type: 'cargo'` packages. - [conan.md](https://crossbind.dev/api/conan.md): `conan:` imports of C and C++ packages from ConanCenter, `conanDependencies` and `conan.lock`. - [wasi.md](https://crossbind.dev/api/wasi.md): `platform: 'wasi'` command builds, `-wasi` prebuilts and `-standalone-wasi` tool packages. - [native.md](https://crossbind.dev/api/native.md): desktop platforms beyond Node.js addons: native executables and the prebuilt archives in your own C or C++ build. - [swig-escape.md](https://crossbind.dev/api/swig-escape.md): hand-written SWIG `.i` files when generation is not enough. - [overrides.md](https://crossbind.dev/api/overrides.md): every override mechanism, ordered from least to most invasive. - [performance.md](https://crossbind.dev/api/performance.md): the default Emscripten and CMake flags, and what is safe to change. - [troubleshooting.md](https://crossbind.dev/api/troubleshooting.md): common errors mapped to the right override. - [lifecycle-and-types.md](https://crossbind.dev/api/lifecycle-and-types.md): why there is no JavaScript-side `delete()`, and TypeScript notes. ## Libraries - [Libraries](https://crossbind.dev/ports.md): 16 C and C++ libraries prebuilt for the web, Node.js, iOS, Android and WASI, plus the command-line tools of 0 of them as npm executables. - [cURL](https://crossbind.dev/ports/curl.md): HTTP, HTTPS and file-transfer client library. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [Expat](https://crossbind.dev/ports/expat.md): Streaming XML parser. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [GDAL](https://crossbind.dev/ports/gdal.md): Raster and vector geospatial data processing. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [GEOS](https://crossbind.dev/ports/geos.md): Geometry predicates and spatial operations. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [GeoTIFF](https://crossbind.dev/ports/geotiff.md): GeoTIFF metadata and coordinate-system support. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [iconv](https://crossbind.dev/ports/iconv.md): Character-set conversion. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [LERC](https://crossbind.dev/ports/lerc.md): Limited-error raster compression. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [libjpeg-turbo](https://crossbind.dev/ports/jpegturbo.md): High-performance JPEG codec. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [libTIFF](https://crossbind.dev/ports/tiff.md): TIFF image reader and writer. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [OpenSSL](https://crossbind.dev/ports/openssl.md): TLS and cryptographic primitives. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [PROJ](https://crossbind.dev/ports/proj.md): Coordinate reference-system transformations. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [SpatiaLite](https://crossbind.dev/ports/spatialite.md): Spatial SQL extension for SQLite. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [SQLite](https://crossbind.dev/ports/sqlite3.md): Embedded relational database. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [WebP](https://crossbind.dev/ports/webp.md): WebP image codec. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [zlib](https://crossbind.dev/ports/zlib.md): DEFLATE compression. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. - [Zstandard](https://crossbind.dev/ports/zstd.md): Zstandard compression. Prebuilt for Web and Node.js, WASI library, Android, iOS, macOS, Linux, Windows. ## Examples - [Examples](https://crossbind.dev/examples.md): Examples run end to end from the published packages on 11 September 2026: web apps for five bundler and framework combinations, a Node.js backend, a Cloudflare Worker, a React Native app on iOS and Android, and WASI command tools, all on crossbind 2.0.0-beta.56. - [Web · React · Vite](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/web-react-vite): `npm create crossbind@beta -- my-app Web React Vite`; live at https://crossbind.dev/examples/web-react-vite/ - [Web · Vue · Vite](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/web-vue-vite): `npm create crossbind@beta -- my-app Web Vue Vite`; live at https://crossbind.dev/examples/web-vue-vite/ - [Web · Svelte · Vite](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/web-svelte-vite): `npm create crossbind@beta -- my-app Web Svelte Vite`; live at https://crossbind.dev/examples/web-svelte-vite/ - [Web · React · Rspack](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/web-react-rspack): `npm create crossbind@beta -- my-app Web React Rspack`; live at https://crossbind.dev/examples/web-react-rspack/ - [Web · Vanilla](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/web-vanilla): `npm create crossbind@beta -- my-app Web Vanilla`; live at https://crossbind.dev/examples/web-vanilla/ - [Node.js](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/backend-nodejs-wasm): `npm create crossbind@beta -- my-node Backend Node.js WebAssembly` - [Cloudflare Worker](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/cloud-cloudflare-worker): `npm create crossbind@beta -- my-worker Cloud "Cloudflare Worker"` - [React Native (Expo) · iOS](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/mobile-reactnative-expo): `npm create crossbind@beta -- my-app Mobile "React Native" Expo` - [React Native (Expo) · Android](https://github.com/crossbind/crossbind/tree/create-crossbind@2.0.0-beta.57/examples/mobile-reactnative-expo): `npm create crossbind@beta -- my-app Mobile "React Native" Expo` - [WASI tools](https://github.com/crossbind/crossbind/tree/crossbind@2.0.0-beta.56/ports/gdal): `npm install --global @crossbind/port-gdal-standalone-wasi@beta` ## Agents - [Agent setup](https://crossbind.dev/agent.md): Install the crossbind skill into a coding agent, verify it, or use the zero-install rule and prompt when a client cannot install skills. - [SKILL.md](https://github.com/crossbind/crossbind/blob/main/agents/skills/crossbind/SKILL.md): the skill's entry point: routing, product-fit and safety rules. - Install the skill: `npx skills add https://github.com/crossbind/crossbind/tree/main/agents/skills --global --yes` ## Changelog - [Changelog](https://crossbind.dev/changelog.md): Every crossbind release on one page, newest first. Released versions carry their verified npm and GitHub links. - [Release notes for 2.0.0-beta.62](https://crossbind.dev/changelog/#2.0.0-beta.62) ## Optional - [llms-full.txt](https://crossbind.dev/llms-full.txt): every page in this index as one Markdown file - [Sitemap](https://crossbind.dev/sitemap.xml) - [GitHub](https://github.com/crossbind/crossbind): source, issues and releases - [Discussions](https://github.com/crossbind/crossbind/discussions) - [MIT licence](https://github.com/crossbind/crossbind/blob/main/LICENSE) - [cpp.js 1.x documentation](https://v1.crossbind.dev): the frozen documentation of the previous major