add ffi/rama-roto: support ability to use services and layers written in roto
Similar to https://github.com/plabayo/rama/issues/532, but trading off flexibility for a lot of simplicity. As writing roto scripts is a whole lot easier (for most) than writing and compiling wasm modules.
Is to be added under the ffi folder, meaning the crate will live under ./ffi/rama-roto
Initial goals:
- support for http only
- support the ability for an layer service (meaning it will get a blackbox http service that it needs to sandwich
- as well as the ability for an endpoint/leaf service, meaning it needs to return the content itself (response)
Will need to investigate if we can make use of nice features such as IntoResponse to make it easy to return common responses instead of having to build a response fully. To be investigated by the one implementing this.
An example + test of that example, as well as some unit tests are all also to be added as part of the work on this issue.
- repo: https://github.com/NLnetLabs/roto
- intro article: https://blog.nlnetlabs.nl/introducing-roto-a-compiled-scripting-language-for-rust/
Hello, I discovered rama through the "This Week in Rust" newsletter. I'm decently familiar with Rust, and I'm interested in working on a networking project such as rama. @GlenDC are you the mentor for this issue? Is there a chatroom for this project where we can communicate sometime this week? I hope this is an appropriate place to ask questions.
Yes I am available to mentor @jc65536 and next to me, @soundofspace will also jump in as well where he sees fit.
We can chat here, on a draft PR, via GitHub Discussions or on discord (where we have a rama chatroom): https://discord.gg/29EetaSYCD. For something like this I suggest you open a topic in the #rama-forum forum-channel that you'll see on discord. This will keep the communication focused on this topic neatly organised.
In fact there's also a topic I opened about it: https://discord.com/channels/1114459060050333696/1374746247390302238, so once you are in the discord you can jump in that topic if you want. I'll already assign the ticket to you. Note that I do expect to have this within a period of 4 to 6 weeks. So do be honest to yourself if this is something you can commit sufficient time to as I have a couple of downstream projects that have use for it.
Either way I'll be here and available for guidance mentorship and more. Take care.
@jc65536 are you still working on this? Asking as @Babbleshack has shown interest to pick it up and I rather not have these kind of issues be hogged for too long without proof of effort and progress. There will always be work to be done in future in the meanwhile I do want issues to move forward. With our guidance and help of course, always available.
I haven't had time to work on this recently. I can push my work so far, and Babbleshack can take over.
I haven't had time to work on this recently. I can push my work so far, and Babbleshack can take over.
Hi @jc65536 I certainly dont want to take the work from you if your still interested. I hadnt noticed it was assigned to you when I mentioned it to @GlenDC.
I dont want to speak for @GlenDC, but from my perspective, if you would rather continue working on this, than please do!
I don't mind if others take over my issue. It's honestly been way too long since I've been able to spend time on this project, and things do need to move forward. If you're interested, go right ahead. If no one's interested in this issue, I'll come back to this when I have the means to.
@jc65536 Okay after I finish my current work, Ill message you here and if you still happy to hand over, then Ill take over.
Great, all the same for me. Rama is anyway not gonna be a project that will be ever finished. There will always be plenty of work to be done, and even if you do not find anything that's already linked to an issue, I'm sure we can always come up with something meaningful to do which brings you joy. We're here to empower you, not only when using rama but also to develop with all of us.
@Babbleshack what I have so far is at https://github.com/jc65536/rama/tree/jason/rama-roto