Skip to content

Set up CI#2

Open
rsamoilov wants to merge 1 commit intomasterfrom
ci
Open

Set up CI#2
rsamoilov wants to merge 1 commit intomasterfrom
ci

Conversation

@rsamoilov
Copy link
Member

No description provided.

@boazsegev
Copy link

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.

@rsamoilov
Copy link
Member Author

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
660e747
c31c9d7
bc68ba0
d684622

And let me know if I can help with anything!

@boazsegev
Copy link

Hi Roman,

Thanks for the links to the commits and fixes, that's great!

Is the io_uring a big thing? it seemed to me that it brought with it too many security concerns...?

And Async File IO...? can you tell me more about the use-cases for that?

Thanks,
B.

@boazsegev
Copy link

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants