Fork me on GitHub esfx logo

A low-level framework for interoperability between 3rd-party ECMAScript packages.


The @esfx suite of packages is designed to provide low-level interoperability between 3rd-party packages for a number of common operations.

The suite is broken down into the following categories:

Low-level API Packages

The primary purpose of @esfx is to provide a number of low-level Symbol-based API packages to allow interop between 3rd-party packages:

Collection Classes

The following packages provide reusable collection and list abstractions over the @esfx/collection-core and @esfx/equatable packages:

Async Coordination Primitives

The following packages provide primitives to help coordinate async operations:

Thread Synchronization Primitives

The following packages provide primitives to help synchronize and coordinate multiple threads using Workers:


The following packages provide decorators and decorator-related functionality:


The following packages provide various utilities:


Shim packages augment built-in objects with functionality from the main packages.


Adapter packages provide functionality to simplify interoperability scenarios with different platforms:


esfx is distributed as open source under the Apache License 2.0.