Geospatial
GDAL, GEOS, PROJ: coordinate reprojection, format conversion, and spatial analysis in browser or mobile contexts.
cpp.js is the open-source build system at the core of Celoce. It standardizes cross-platform native interoperability, resolving transitive dependencies, generating FFI bindings, and routing compilation across Emscripten, NDK, and Xcode toolchains from a single configuration.
Open-source foundation and orchestration system developed by Celoce. cpp.js standardizes cross-platform native integration workflows from a single configuration.
Human-written, open-source orchestration system that compiles C++ libraries for multiple platform targets. Handles dependency resolution, automatic bindings generation, packaging, and orchestration across runtimes and deployment targets.
import {...} from './foo.h'), bidirectional, no manual bindingsWe don't just wrap compilers. We extend the interoperability layer to solve gaps that raw toolchains leave open.
Extends Emscripten's embind for production use. Handles complex C++ object-oriented semantics and overloaded functions that the standard toolchain leaves to manual binding.
Provides embind-compatible JSI integration for React Native. Unifies runtime semantics for native modules across iOS and Android.
Custom interface generation infrastructure that automates binding creation between C++ libraries and target runtimes. Reduces manual bridge code and provides unified interface workflows across platforms.
The orchestration layer that coordinates compilers, architectures, runtimes, packaging systems, deployment targets, and build workflows into a single coherent pipeline.
Many portable C++ libraries are supported. Performance benefits are most significant for compute-heavy workloads where C/C++ implementations have years of optimization.
GDAL, GEOS, PROJ: coordinate reprojection, format conversion, and spatial analysis in browser or mobile contexts.
BLAS, LAPACK, FFTW, Eigen: linear algebra, signal processing, and matrix operations for compute-intensive applications.
ffmpeg, libvpx, JPEG XL: video transcoding, image processing, and codec operations without server-side infrastructure.
OpenCASCADE, Open3D, Bullet: geometric kernels, physics engines, and 3D processing for engineering applications.
OpenSSL, libsodium, BoringSSL: audited cryptographic primitives deployed client-side in supported environments.
SQLite, DuckDB, RocksDB: local data processing and querying without network dependencies.
We natively support and integrate both Emscripten and JSI. We fill the shortcomings of both. Our JSI++ understands embind-style semantics, creating a unified interoperability layer across supported targets.
cpp.js natively supports and integrates both Emscripten and JSI, filling the shortcomings of each. JSI++ provides embind-compatible semantics across React Native, while Emscripten+ extends WebAssembly interoperability. For single-file compilations, either tool alone may be sufficient. For libraries with transitive dependencies and multi-platform targets, the unified orchestration layer reduces significant operational complexity.
cpp.js is free and runs locally. When you need managed builds or enterprise infrastructure, Celoce Cloud and Enterprise are there.