suborbital/e2core

Server for sandboxed third-party plugins, powered by WebAssembly

Go

719

588 commits

updated Aug 24, 2023

See the code

README

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

plugins
webassembly

suborbital/e2core

Server for sandboxed third-party plugins, powered by WebAssembly

Go

719

588 commits

updated Aug 24, 2023

See the code

README

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

plugins
webassembly

Project health

Overall

3.3/10

Maintained

0/10

Code review

10/10
OpenSSF Scorecard

Latest release

v0.5.1 · Dec 9, 2022

Releases this year

0

Significant stargazers

Jiaxiao Zhou

404 followers · starred May 2022

Anton Gilgur

161 followers · starred Apr 2024

David Flanagan

594 followers · starred Jan 2021

Pires

739 followers · starred Jun 2022