Skip to content

Server for sandboxed third-party plugins, powered by WebAssembly

License

Notifications You must be signed in to change notification settings

suborbital/e2core

Repository files navigation

e2core

Suborbital E2 Core is a server and SDK that allows developers to add third-party plugins to any application. Plugins are developed using familiar languages like JavaScript, TypeScript, Go, and Rust, and are executed in a securely sandboxed environment. E2Core can be run within private infrastructure while protecting against potential malicious untrusted code and providing useful capabilities to plugin developers.

E2 Core is a single statically compiled binary, and can be run on x86 or ARM, containerized or otherwise. It runs as a server, and allows applications to execute plugins using a simple HTTP, RPC, or streaming interface. The admin API makes it simple to manage available plugins, including built-in versioning and namespacing.

Use cases include:

  • Running custom logic within an ETL/ELT pipeline
  • Adding plugins to streaming platforms like NATS or Kafka/Redpanda
  • Allowing users to "write their own webhooks"
  • Allowing third-party developers to render custom UI elements

E2 Core pairs with our Subo CLI for local plugin development and command-line server administration.

E2 Core is still new, and not fully documented. We are striving to include extensive documentation and demos, so look out for that!

Running locally

If you'd like to run E2 Core locally, you can run make e2core/install and then e2core start ./example-project/modules.wasm.zip. Plugins can be executed by calling POST /name/:identifier/:namespace/:name, for example curl -d 'world' localhost:8080/name/com.suborbital.app/default/helloworld-rs