Conversation
|
Hi, I just discovered this fork and thought I'd ask... do you need anything merged into the main branch? I'm rewriting iodine (main branch), looking to improve some core-design and security concerns, working on version 0.8.x. It's a really big rewrite and I hope it would make iodine even more resilient and versatile. This would be a good opportunity to add any features you need to either the new facil.io CSTL library or the upcoming iodine 0.8.x P.S. I couldn't open an issue, so I posted here. Sorry about that. |
|
Hey Bo, That’s great news! I am usually not overly excited about rewrites, but I’m happy to hear you continue working on Iodine. To me, the biggest feature I’d probably love to see would be asynchronous file IO, whether using io_uring or a thread pool. There's also a bunch of small fixes in this fork - feel free to backport those if you want. 17f63ff And let me know if I can help with anything! |
|
Hi Roman, Thanks for the links to the commits and fixes, that's great! Is the And Async File IO...? can you tell me more about the use-cases for that? Thanks, |
|
FYI: I incorporated the fixes you requested into the 0.8.x rewrite branch. As for the reason it's a re-write, this is because the underlying design and architecture changed a bit, focusing on a single IO thread with worker threads performing only non-IO tasks (as well as adding Windows compatibility). This change means that even blocking all the Ruby threads used for handling HTTP requests, the IO will remain undisrupted (allowing the static file service to continue serving files for existing connections, and for direct pub/sub messages to flow without delay). Another concern was making streaming a first-class citizen for some of the use-cases iodine was used for (see the NeoRack specification for details). |
No description provided.