Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BP: Pluggable processors (WASM) #1158

Closed
6 tasks
Tracked by #997
maha-hajja opened this issue Aug 2, 2023 · 4 comments
Closed
6 tasks
Tracked by #997

BP: Pluggable processors (WASM) #1158

maha-hajja opened this issue Aug 2, 2023 · 4 comments
Assignees
Labels
feature New feature or request
Milestone

Comments

@maha-hajja
Copy link
Contributor

maha-hajja commented Aug 2, 2023

Pluggable processors or bring-your-own-processor (BYOP) is the ability to provide a custom processor implementation, similarly to how we currently allow the user to provide standalone connector implementations. We already provide a similar feature using the JavaScript processor, although it has many drawbacks like poor performance and the fact that users are forced to write JavaScript. We should think about alternatives that would improve the experience of writing your own processor like go-plugin or WebAssembly.

@maha-hajja maha-hajja mentioned this issue Aug 2, 2023
11 tasks
@github-project-automation github-project-automation bot moved this to Triage in Conduit Main Aug 2, 2023
@maha-hajja maha-hajja changed the title Pluggable processors Better processors: Pluggable processors Aug 2, 2023
@simonl2002 simonl2002 moved this from Triage to Todo in Conduit Main Aug 2, 2023
@lovromazgon lovromazgon added the feature New feature or request label Aug 4, 2023
@ahmeroxa
Copy link

I spent a fair bit of time exploring WebAssembly and the WebAssembly ecosystem and unfortunately it has become quite fragmented with various runtimes and implementations/standards (e.g. base WASM, WASI and WASIX). What is promising though is the (relatively) mature support for Host Functions (i.e. a native function that can be exposed within the WASM runtime to provide additional functionality).

This feels like the right approach at least for now. Include a WASM runtime and ship a number of host functions that provide common functionality (such as HTTP Requests or maybe even SQL query access to popular databases). That would allow us to support multiple languages for transforms as well as see a significant performance boost (WASM vs JS on goja).

@simonl2002 simonl2002 added this to the 0.9.0 milestone Oct 31, 2023
@simonl2002 simonl2002 moved this from Todo to Triage in Conduit Main Oct 31, 2023
@simonl2002 simonl2002 moved this from Triage to Todo in Conduit Main Nov 13, 2023
@lovromazgon
Copy link
Member

For future reference: https://github.com/stealthrocket/net

This library provides net.Dial and net.Listen functions for GOOS=wasip1.

@lovromazgon lovromazgon changed the title Better processors: Pluggable processors BP: Pluggable processors (WASM) Nov 28, 2023
@simonl2002 simonl2002 moved this from Todo to In Progress in Conduit Main Dec 18, 2023
@hariso
Copy link
Contributor

hariso commented Dec 27, 2023

I've updated the description to include relevant issues and PRs

@hariso hariso closed this as completed Jan 29, 2024
@github-project-automation github-project-automation bot moved this from In Progress to Done in Conduit Main Jan 29, 2024
@hariso
Copy link
Contributor

hariso commented Jan 29, 2024

The WASM part itself is done, we're now hooking it into Conduit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
Archived in project
Development

No branches or pull requests

5 participants