npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@code3d/opencascade

v0.0.1-alpha.0

Published

The OpenCascade runtime selected by `@code3d/core`. It uses the `[email protected]` binding ABI and corrects native object destruction in the binding generator. The dependency on `replicad-opencascadejs` supplies the matching declarations used

Readme

@code3d/opencascade

The OpenCascade runtime selected by @code3d/core. It uses the [email protected] binding ABI and corrects native object destruction in the binding generator. The dependency on replicad-opencascadejs supplies the matching declarations used by Replicad and core. This package exports its own generated loader and WASM.

Code3dMemory.AllocatedBytes() reports the native allocator's current occupancy by summing allocated block sizes in the pinned mimalloc's heap areas, including geometry shared between shape handles. The build explicitly selects mimalloc. The binding parser receives the allocator's include directory from the same pinned toolchain; it otherwise uses host Clang's system include paths. Core combines this with estimated JavaScript cache storage for its memory budget. The WASM buffer capacity is a growth high-water mark and is not used to decide whether releasing cached geometry has reduced memory usage.

The upstream generator treats any two-argument operator delete as evidence that a class cannot be destroyed. OCCT's allocation macros provide both ordinary and placement delete, so this incorrectly emits empty destructors for shapes, builders, and other owned native objects. JavaScript .delete() then invalidates the handle while retaining its native allocation and referenced geometry.

The build patch checks whether the C++ delete expression is valid. Publicly deletable objects run their actual destructor and deallocator. The existing handling of objects whose destructor or deallocator is inaccessible is retained.

Run npm run build --workspace @code3d/opencascade with Docker available to rebuild the checked-in runtime. The build pins the Linux amd64 toolchain image by digest and includes the original binding configuration, native extractor sources, and the generator patch. Rebuilding uses several gigabytes of disk and can take tens of minutes. Ordinary repository builds use the checked-in files.

Upstream sources:

See LICENSE.LGPL-2.1 for the runtime license.