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):
- Environment is already
lockdown()
by ses. - Dynamic code execution (
eval
andFunction
) is not possible (if it is possible, please use the Compartment provided by ses). - Files executed are either precompiled into SyntheticModuleRecord or trusted.
Roadmap
-
✅ @masknet/static-module-record-swc
: A swc plugin to transform ES Module into SyntheticModuleRecord. -
⌛ @masknet/compartment
: An eval-less implementation of Compartment. -
⌛ @masknet/web-endowments
: Provide common Web APIs, withAbortSignal
support to cancel out all side effects within a compartment, and provide attenuations (e.g. limits accessible databases ofindexedDB
, or limit accessible domains infetch
). -
❓ @masknet/membrane
: A membrane library. -
❓ @masknet/intrinsic-snapshot
: Make a snapshot of all intrinsic (including host APIs).