Klib
HTTP Parser
Our great sponsors
Klib | HTTP Parser | |
---|---|---|
14 | 8 | |
3,586 | 6,027 | |
- | 0.6% | |
0.4 | 0.0 | |
5 months ago | 10 days ago | |
C | C | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Klib
- C++ containers but in C
-
Im looking for a good hashtable fonction to use
If you want a generic, extremely high performance implementation. I really recommend khash: https://github.com/attractivechaos/klib/blob/master/khashl.h
- What if Linus Torvalds used C++ instead of C
-
sqzlib - kseq compatible DNA fastA/Q encoding and compression library
Most importantly, sqzlib is fully compatible with klib/kseq.h one of the highest performance fastA/Q parsers. This means that any application that uses kseq.h for fastA/Q parsing, can be easily modified to use sqzlib instead. You can find patched versions of seqstats, minimap2, and bwa-mem2 in my github, or you can patch them yourself with the included patches.
-
"Implementing Hash Tables in C" (an article I've drafter a few years ago, but never published it until... now)
I don;t know if you are aware of khash? It's a very nifty hash table implementation. It is one of the fastest hash table implementations out there. Heavily used in bioinformatics. You said in your post that you are a macro guy, well, you are in for a treat with this library.
- Metaprogramming custom control structures in C
- I still like C and strongly dislike C++
-
Type-safe generic data structures in C
This is in fact a pretty common pattern in production code.
Here's an entire suit of type safe generic data structures in C: https://github.com/attractivechaos/klib
-
How to structure C code? It appears to reward shallow functions and doing everything in the global scope, whereas other languages let you go as deep as you want at no cost.
You will probably want to invest some time into either finding a good data structures library (preferable) or writing your own data structures (fine to do but not a good use of your time if you're starting out). You can try SGLIB or klib.
- Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust
HTTP Parser
-
eBPF will help solve service mesh by getting rid of sidecars
It looks not too different from the majority of HTTP parsers out there written in C. Here is an example of NodeJS [0].
[0] https://github.com/nodejs/http-parser/blob/main/http_parser....
-
C in Web Dev
NodeJS's HTTP parser used to be a handwritten C lib: http-parser
-
The history and reasons behind CORS, and how to use it
Whoa, I didn't know that! But yeah, it seems like https://github.com/nodejs/http-parser is based on nginx. It now uses https://github.com/nodejs/llhttp but has some of the same legacy.
On the other hand, deno's HTTP stuff is built on top of Hyper, a Rust library https://github.com/hyperium/hyper
-
A Universal I/O Abstraction for C++ (2020)
Boost.Beast has its own HTTP parser[0], during the development of which Vinnie Falco (the principle author of Beast) found many bugs/inconsistencies in Node.js's own parser[1]
[0] https://www.boost.org/doc/libs/develop/libs/beast/doc/html/b...
[1] https://github.com/nodejs/http-parser/issues?q=is%3Aissue+au...
-
How to pass ownership of std::function object to function pointer?
For cases where it is necessary to pass local information to/from a callback, the http_parser object's data field can be used.
From nodejs http-parser documentation:
-
Plain Text Protocols
Legacy HTTP/1.1 suffers a few issues, see the current RFC errata:
https://www.rfc-editor.org/errata_search.php?rfc=7230&rec_st...
There are issues particularly around how whitespace and obsolete line folding should be handled
https://github.com/nodejs/http-parser/issues?q=is%3Aissue+wh...
https://github.com/httpwg/http-core/issues/53
It's not as trivial as a few string splits.
-
Looking for good http parser in C++ or C
There's picohttpparser and the one used in node.js: https://github.com/nodejs/http-parser
What are some alternatives?
ZLib - A massively spiffy yet delicately unobtrusive compression library.
American Fuzzy Lop - american fuzzy lop - a security-oriented fuzzer
C++ Format - A modern formatting library
semver.c - Semantic version in ANSI C
llhttp - Port of http_parser to llparse
ZXing - ZXing ("Zebra Crossing") barcode scanning library for Java, Android
Better Enums - C++ compile-time enum to string, iteration, in a single header file
PHP CPP - Library to build PHP extensions with C++
gopher-plus - Gopher+ protocol specification
libevent - Event notification library
Geany - A fast and lightweight IDE