Show HN: Micro HTTP server in 22 lines of C

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • ioccc

    My IOCCC submissions and practice.

  • llhttp

    Port of http_parser to llparse

  • No, parsing HTTP/1.x is a nightmare and definitely not simple. It wasn't even particularly well defined until 2014 when the original RFCs were modernized, and even now there are bugs reported in HTTP parsers all the time.

    Node.js came out in 2009, a full ten years after HTTP/1.1 (RFC 2068) and it's original http-parser is full-on spaghetti code, doesn't conform to the RFCs for performance reasons, and is considered unmaintainable by the author of it's replacement[0]

    [0] https://github.com/nodejs/llhttp

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • cosmopolitan

    build-once run-anywhere c library

  • I'm the author of the fastest open source HTTP server. Parsing HTTP 0.9, 1.0, and 1.1 is trivial. It's a walk in the park. It only takes about a hundred lines of code to create a proper O(n) parser. https://github.com/jart/cosmopolitan/blob/0b317523a0875d83d6...

    The Joyent HTTP parser is very good but it's implemented in a way that makes the problem much more complicated than it needs to be. The biggest obstacle with high-performance HTTP message parsing is the case-insensitive string comparison of header field names. Joyent'

  • ultra

    An ultra-small, ultra-fast, web server. (by MarquisdeGeek)

  • wpt

    Test suites for Web platform specs — including WHATWG, W3C, and others

  • For clients, browser-compatible HTTP/1 implementation is a whole another bag of problems.

    For example, Content-Length isn't just a single header with an integer, like the spec says. You need to support responses with multiple Content-Length headers, and Content-Length with comma-separated list of lengths. Getting this wrong will make your client hang, consume garbage, or allow response stuffing.

    https://github.com/web-platform-tests/wpt/pull/10548/files

    This problem does not exist in HTTP/2.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • [AskJS] MSE quality resources

    1 project | /r/javascript | 18 Jan 2023
  • Rookie question: How do I know I am making progress with my JS learning?

    2 projects | /r/learnjavascript | 25 Dec 2022
  • Browsers Running Old JS Engines

    1 project | /r/learnjavascript | 10 Dec 2022
  • Ladybird: a truly new web browser made from scratch comes to Linux

    4 projects | /r/browsers | 22 Jul 2022
  • The 'Ahem' Font

    6 projects | news.ycombinator.com | 8 Jun 2022