Skip to content

openbim-ifc-wasm ​

WebAssembly bindings for openbim-ifc: read, edit and write IFC STEP files from JavaScript.

StatusPartial
Latest release0.2.0 (2026-09-29)
Registriesnpm @openbim/ifc
API documentationrustdoc
Sourcecrates/openbim-ifc-wasm/

Overview ​

WebAssembly bindings for the IFC facade (ADR 0013, #34).

Reads, edits and writes IFC STEP files from JavaScript. The surface is the record model: an IfcModel holds entities, each a type name plus positional attributes. Attribute values cross the boundary in the lossless tagged encoding of openbim_ifc_binding_core::value, so a file read and written back through JavaScript is unchanged.

Every operation lives in openbim-ifc-binding-core, shared with the C and Python bindings. This crate converts JS arguments and results only, and is empty outside wasm32.

A test of anything that does not need a JS host belongs in openbim-ifc-binding-core, where cargo test runs it natively; the Node suites here cover only the JS conversion itself.

Features ​

FeatureDefaultEnables
ifc2x3yesopenbim-ifc-binding-core/ifc2x3
ifc4yesopenbim-ifc-binding-core/ifc4
ifc4x1yesopenbim-ifc-binding-core/ifc4x1
ifc4x2yesopenbim-ifc-binding-core/ifc4x2
ifc4x3yesopenbim-ifc-binding-core/ifc4x3

Depends on ​

Changes ​

Latest release, 0.2.0 (2026-09-29):

Added ​

  • Release features ifc2x3, ifc4, ifc4x1, ifc4x2, ifc4x3 (all default, so the npm package is unchanged). A browser build with one release, --no-default-features --features ifc4, is 699,687 bytes after wasm-bindgen instead of 1,236,036 (#112).

Full history: crates/openbim-ifc-wasm/CHANGELOG.md

Released under the AGPL-3.0-or-later licence. ISO and CEN standards material is not redistributed.