retro-httpaf-bench
angstrom
retro-httpaf-bench | angstrom | |
---|---|---|
6 | 3 | |
21 | 616 | |
- | 1.3% | |
0.0 | 0.0 | |
2 months ago | 4 months ago | |
Jupyter Notebook | OCaml | |
- | GNU General Public License v3.0 or later |
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.
retro-httpaf-bench
- Parser Combinators in Haskell
-
Ask HN: Alternatives to Rust Programming Language
I do. The benchmark results itself is here: https://aws1.discourse-cdn.com/standard11/uploads/ocaml/opti.... This comes from the OCaml multicore monthly news, the october 2021 edition: https://discuss.ocaml.org/t/multicore-ocaml-october-2021/882.... The benchmark's repo is here: https://github.com/ocaml-multicore/retro-httpaf-bench. However that image is not the whole story, and there's a bit more info here: https://watch.ocaml.org/videos/watch/74ece0a8-380f-4e2a-bef5.... In that video, the author says that the result vary depending on the load (sometimes Rust Hyper can end up above OCaml httpaf eio), that OCaml currently uses an io-uring backend while Rust doesn't, and that the results are for single core as previous OCaml implementations are single-core themselves.
I do feel that this benchmark is incomplete. I'd like it to see the results while using all of the cores of a machine, and I'd like to see different type of loads. I do think that the results are impressive: performance between Go and Rust is great. I do hope that it stays this way with multicore.
-
Adapting the OCaml Ecosystem for Multicore OCaml
We don't compare against Go pervasively. Benchmarking across languages is hard generally, but here is a result on a specific benchmark comparing several versions of OCaml benchmarks against Go and Rust on a Http server benchmark: https://github.com/ocaml-multicore/retro-httpaf-bench/pull/1....
If there are suggestions to make the Go and Rust versions, please feel free to tell us how in the issue tracker.
-
I don't see a future for Go. It's big within the kubernetes world right now but it will slowly be replaced by Rust.
multicore already faster than Go
-
Functional Programming in OCaml
Multicore is coming along, you can read the latest news here: https://discuss.ocaml.org/t/multicore-ocaml-june-2021/8134
In terms of performance, there is this paper https://kcsrk.info/papers/system_effects_feb_18.pdf where on a single core async OCaml and effect OCaml are close to Go's net/http, and there is also this project https://github.com/ocaml-multicore/retro-httpaf-bench but I haven't see any results from it.
angstrom
-
Anyone have suggestions on how to parse recursive grammar elements with a parser generator?
Looking at the angstrom reference here I've explored a few ideas but none of them work.
- Parser Combinators in Haskell
-
Is Ocaml From the beginning a good book? Where to learn about multicore Ocaml? Is this a good project skeleton?
Do you specifically need an LR(1) parser? If you just need to do some simple parsing, a parser combinator library like Angstrom works fine and is completely defined in OCaml code: https://github.com/inhabitedtype/angstrom
What are some alternatives?
assert-combinators - Functional assertion combinators.
ocaml-parsing - Boilerplate code for writing parsers in OCaml using Menhir + sedlex
codeworld - Educational computer programming environment using Haskell
comby - A code rewrite tool for structural search and replace that supports ~every language.
parser - String parser combinators
generator - Generator module.
ocaml-h2 - An HTTP/2 implementation written in pure OCaml
dune - A composable build system for OCaml.
morbig - A static parser for POSIX Shell
httpaf - A high performance, memory efficient, and scalable web server written in OCaml
multicore-opam - OPAM repo for OCaml multicore development