nathansizemore

Joined 10 years ago

Karma
104
Submissions
15
Member since
May 10
Software Engineer
View on Hacker News

Recent submissions

Comment · 10 years ago
I'd have to look into it, haven't checked out mio in months, but I don't see any reason why it couldn't be compatible with it. Any particular reason?
Comment · 10 years ago
> Why not X?

I wanted to use Rust and learn epoll through working with it directly.

> I was hoping Rust wouldn't head down this road.

To my knowledge, Rust does not have a std async story. I hope it will, and I believe libs like mio will help flush out platform agnostic ideas and a tested API.

> To preempt: a systems language shouldn't dictate these high-level matters

All of your cited example languages are _not_ systems language? Node.js isn't even a language? It could be listed above with the rest of your async I/O options across several languages.

Comment · 10 years ago
Yeah, learning a more safe way to program via the borrow checker can take some time to get ingrained. Bad habbits are hard to break ;) I do know that async-hyper is coming out soon (hyper built atop mio). Personally, I enjoy not having support libraries around for everything - it gives me a chance to implement myself and learn a ton along the way.
Comment · 10 years ago
Exactly. It is ideal for any type of high performance server that needs to handle many long lived concurrent connections.
Comment · 10 years ago
From briefly looking across the README, it looks like Ranch is more for maintaining a pool of connections, where this _also_ handles the marshalling of consumer defined I/O (Non-blocking read/writes) operations, and the workflow associated with non-blocking I/O.
Comment · 10 years ago
Bummertown. This is my first open source project I've really broadcast to the world and I should have taken more time to research the name instead of just going for the first one that came into my head. Thanks for pointing that out!
Comment · 10 years ago
TBQH, I do not have the slightest clue why I decided to implement that as a growable String type instead of a literal. Definitely warrants a change.
Comment · 10 years ago
Comment · 10 years ago
Of course!

Well, hyper is a lib for dealing with the HTTP protocol. If being cross platform did not matter, hyper could be build atop of this.

I did not go the route of mio because I wanted to learn the entire process of working with epoll by doing it myself. I've learned a lot, and would not have that knowledge if I just built atop of mio. Mio must also provide a unified abstraction across platforms, where I was free to experiment and change at will during the building process.

Comment · 10 years ago
Thanks, but it only uses epoll :)

mio is a crate that offers more platform agnostic async I/O.

Comment · 10 years ago
Thanks! Yeah, only a few days into using emacs. I keep forgetting about those files.
Comment · 10 years ago
Thanks! Was lucky enough to be able to use Rust for a production application, and hope it can be useful to others in providing the tedious mundane parts of socket server building :)

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton