Hydrogen

Infrastructure

server framework

SHOW HN2016

Hydrogen

A multithread non-blocking Linux server framework in Rust

github.com

#rust#epoll#non-blocking io#socket server#linux

154points
46comments
#209of 2,264 in 2016
Top 10%of 2016 by points

How HN took it

DebatedReal support and real criticism

4 positive, 8 neutral or asking, 0 mixed, 4 critical, out of 16 comments about the project. Thread score -0.03.

Design: 1 for, 1 againstIdea: 1 for, 0 againstExecution: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Licensed under copyleft MPL

    From 1 comment
    • I like the fact that you chose MPL. Not enough people are using copyleft these days. :D
      cyphar on HN
  • Useful for high-performance concurrent servers

    From 2 comments
    • Alright, when would I want to use this? It reads like I would use it for a high-performance and safe network daemon of some kind. So basically it could be used as the lowest…
      Svenstaro on HN
    • Happy to see projects like this pop up! As a long-time go user, these types of fundamental projects really are what drove the community early on.
      bradhe on HN

Objections

  • Name conflicts with the Hydrogen drum machine project

    From 1 comment
    • In software context, for me, the name is taken. ``` Hydrogen: advanced drum machine for GNU/Linux ``` And a very good one, with a long road in the back.…
      txutxu on HN
  • Fixed epoll-only design; not cross-platform like mio

    From 2 comments
    • Thanks, but it only uses epoll :) mio is a crate that offers more platform agnostic async I/O.
      nathansizemore on HN
    • 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…
      nathansizemore on HN
  • Send API may lose partial writes on EAGAIN; receive side allocates memory

    From 1 comment
    • Just some comments from looking very briefly at it: The send API lets me wonder how it copes when the socket only allows to send half a frame and then returns EAGAIN/WOULDBLOCK?…
      Matthias247 on HN
  • Ecosystem fragmentation of Rust async I/O libraries

    From 2 comments
    • Why not Boost? / Why not libuv? Why not EventMachine? / Why not Celluloid? Why not Twisted? / Why not gevent? This is a really sad situation unfortunately. I was hoping Rust…
      15155 on HN
    • > To preempt: a systems language shouldn't dictate these high-level matters But you cited a whole bunch of languages that do dictate this. Those languages don't have those…
      pcwalton on HN

Requests

  • Compare with Hyper and Mio

    From 1 comment
    • May I ask, Why not Hyper? Why not Mio? Don't misunderstand, I'm all for competing implementations. I just feel like it would be helpful to lay out a comparison for everyone…
      yazaddaruvala on HN
  • Stay compatible with mio's interface

    From 1 comment
    • Is it possible to stay compatible with mio's interface, perhaps via something layered on top?
      pcwalton on HN
  • Pick a more descriptive name

    From 2 comments
    • What about a proper, useful name that hints to the functionality? "libhttepoll" (because built on epoll)?
      gkya on HN
    • THIS. What is with the stupid single noun names that mean nothing? It may be trendy but it's useless..
      zodPod on HN

Questions

  • Why not use Hyper or Mio?

    From 1 comment
    • May I ask, Why not Hyper? Why not Mio? Don't misunderstand, I'm all for competing implementations. I just feel like it would be helpful to lay out a comparison for everyone…
      yazaddaruvala on HN
  • Can other event notification backends like libev or kqueue be swapped in?

    From 1 comment
    • Is it built such that a different event notification thing such as libev, libevent, kqueue could be swapped in without too much effort? Well, it's not even that much code.. looks…
      loonattic on HN
  • Is the framework suitable for something like an IRC server?

    From 1 comment
    • Alright, when would I want to use this? It reads like I would use it for a high-performance and safe network daemon of some kind. So basically it could be used as the lowest…
      Svenstaro on HN

Alternatives named

  • Mio

    From 1 comment
    • May I ask, Why not Hyper? Why not Mio? Don't misunderstand, I'm all for competing implementations. I just feel like it would be helpful to lay out a comparison for everyone…
      yazaddaruvala on HN
  • Hyper

    From 1 comment
    • May I ask, Why not Hyper? Why not Mio? Don't misunderstand, I'm all for competing implementations. I just feel like it would be helpful to lay out a comparison for everyone…
      yazaddaruvala on HN
  • Ranch

    From 1 comment
    • So i assume this is similar to Ranch in Erlang ?
      dberg on HN
  • libuv

    From 1 comment
    • Why not Boost? / Why not libuv? Why not EventMachine? / Why not Celluloid? Why not Twisted? / Why not gevent? This is a really sad situation unfortunately. I was hoping Rust…
      15155 on HN
  • fasthttp

    From 1 comment
    • > To preempt: a systems language shouldn't dictate these high-level matters But you cited a whole bunch of languages that do dictate this. Those languages don't have those…
      pcwalton on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/11664933)