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

Roadmap #48

Open
withoutboats opened this issue Sep 22, 2020 · 0 comments
Open

Roadmap #48

withoutboats opened this issue Sep 22, 2020 · 0 comments

Comments

@withoutboats
Copy link
Collaborator

withoutboats commented Sep 22, 2020

I'm soon going to be employed and I don't know how much I will be able to contribute to ringbahn after that. My hope is to release a version 0.1 in a matter of days. Unfortunately, that means some things will have to be cut.

Here's my plan:

  1. Release iou v0.3 which wraps basically all of liburing's most recent release API. This will provide a good, up-to-date basis for interacting with io-uring, through ringbahn or not.
  2. Merge New ringbahn on iou-0.3 #47 and release v0.1. This will contain a lot of good APIs (most of the events are supported out of the box, files, TCP, Unix streams, etc) and fix outstanding issues like Cancellation and file descriptors #22.

The big thing that will be missed is integrating better buffer management strategies with the IO handles. I won't be able to revisit #34 in that time. Unfortunately, buffer pre-allocation is necessary to make a full io-uring TCP server performant, so this will be a major blocker. I hope I will be able to return to it soon, and if not that someone else will be able and interested.

Also, I doubt I'll be able to benchmark or stress test ringbahn/maglev before starting work.

Providing ways to support pre-registered FDs, automatic buffer selection, and a fast and correct driver are the only things standing in the way of ringbahn being an awesome driver for io-uring based IO. With those things covered, ringbahn combined with the smol ecosystem's executor could be the basis of the absolute best performance network services on recent Linux kernels, while still giving users straightforward async/await IO objects.

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

No branches or pull requests

1 participant