Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/suborbital/e2core
Server for sandboxed third-party plugins, powered by WebAssembly
https://github.com/suborbital/e2core
plugins webassembly
Last synced: about 1 month ago
JSON representation
Server for sandboxed third-party plugins, powered by WebAssembly
- Host: GitHub
- URL: https://github.com/suborbital/e2core
- Owner: suborbital
- License: apache-2.0
- Created: 2020-10-29T17:41:31.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-08-24T16:21:16.000Z (over 1 year ago)
- Last Synced: 2024-05-23T06:58:31.381Z (7 months ago)
- Topics: plugins, webassembly
- Language: Go
- Homepage: https://suborbital.dev
- Size: 193 MB
- Stars: 719
- Watchers: 22
- Forks: 41
- Open Issues: 57
-
Metadata Files:
- Readme: README.md
- Changelog: changelogs/v0.2.0.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - suborbital/e2core - Server for sandboxed third-party plugins, powered by WebAssembly (Go)
README
**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 elementsE2 Core pairs with our [Subo CLI](https://github.com/suborbital/subo) 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`