mongrel
bindata
mongrel | bindata | |
---|---|---|
2 | 4 | |
173 | 572 | |
- | - | |
10.0 | 5.9 | |
over 14 years ago | about 1 month ago | |
Ruby | Ruby | |
GNU General Public License v3.0 or later | BSD 2-clause "Simplified" 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.
mongrel
-
Newb here: have you written your own web server? Seeking advice
The other major thing you'll run into is performance. WEBrick's HTTP parsing code may look hairy but it is fast. Mongrel was the first Ruby HTTP server to implement it's HTTP parser in C using Ragel, which Thin, Unicorn, and Puma all copied; although there's a bug in the original Mongrel HTTP parser where it does not combine the values duplicate HTTP headers (yes, HTTP Header names can actually be repeated).
bindata
-
How to Track Down Memory Leaks in Ruby | AppSignal Blog
I recently ditched bindata for a self written solution because I couldn't figure out why exactly it leaks memory. According to count objects it creates a shit ton of classes if you read a lot of data and idk why
-
Help Finding Material for Decoding Hex Files
"Writing an entire custom program" is the best way. Ruby has a nice package called bindata (https://github.com/dmendel/bindata) that works well for this purpose.
-
Newb here: have you written your own web server? Seeking advice
For example, I enjoy sim racing, and some of my games provide a network API for things like telemetry data. So I wrote a simple telemetry logger that I use to gather data, which I then mess around with using R Studio. Ruby worked exceptionally well for this because of a cool little library called BinData.
-
Ruby Structs with type specifications for the properties
These projects always remind me of binary formats. I've used bindata to work with binary formats coming from UDP streams over a network, and it's very handy to have a layer that encapsulates your expectations about the data you're receiving, combined with an exception handling apparatus.
What are some alternatives?
Thin - A very fast & simple Ruby web server
config.cr - Easy to use configuration and parser.
EventMachine - EventMachine: fast, simple event-processing library for Ruby programs
HAR - HAR (HTTP Archive) parser in Crystal
Puma - A Ruby/Rack web server built for parallelism
maxminddb.cr - MaxMind DB Reader for Crystal
Rack - A modular Ruby web server interface.
Crystalizer - (De)serialize any Crystal object - out of the box. Supports JSON, YAML and Byte format.
Tokamak - SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms
crinder - Class based json renderer in Crystal
tracks - A bare-bones Ruby HTTP server that talks Rack and uses a thread per connection model of concurrency.
JSON tools - An implementation of RFC-6901 and RFC-6902 in Crystal Lang