@masknet/membrane

Monorepo of our ahead-of-time implementation of Secure ECMAScript


Install
npm install @masknet/membrane@0.2.0

Documentation

Ahead-of-time Secure EcmaScript

The monorepo contains a set of packages that helps adopt SES in a pre-compiled way.

Security Assumptions

This project has the following security assumptions (based on our usage):

  1. Environment is already lockdown() by ses.
  2. Dynamic code execution (eval and Function) is not possible (if it is possible, please use the Compartment provided by ses).
  3. Files executed are either precompiled into VirtualModuleRecord or trusted.

Roadmap

  • @masknet/static-module-record-swc: A swc plugin to transform ES Module into VirtualModuleRecord.
  • @masknet/compartment: An eval-less implementation of Compartment.
  • @masknet/web-endowments: Provide common Web APIs, with AbortSignal support to cancel out all side effects within a compartment, and provide attenuations (e.g. limits accessible databases of indexedDB, or limit accessible domains in fetch).
  • @masknet/membrane: A membrane library.