net-http-server
net-http-server copied to clipboard
A pure Ruby HTTP Server.
The Server Daemon does not support re-using the socket when the `Keep-Alive` header is specified.
The Rack specs do not start the Server in the background, causing all specs to fail to connect.
`rackup -s HTTP` doesn't work (I think rack is trying to load `rack/handler/hTTP.rb`), neither does `rackup -s http`, as you don't call `register` in the handler.
Ditch GServer for EventMachine, which has it's own Thread Pool and supports `async.callback`.
Drop the `gserver` dependency in favor of a single-threaded `TCPServer` + `IO.select` implementation.
Add a GitHub Actions workflow file to run the tests and possibly rubocop.
Copy the rubocop configuration from [command_kit](https://github.com/postmodern/command_kit.rb/blob/main/.rubocop.yml), which closely matches my coding style, then add `rubocop` to the project to catch minor style issues.
For some reason the `Rack::Handler::HTTP` specs hang with a long timeout and eventually this error: ``` [Tue Mar 4 17:25:44 2025] /data/home/postmodern/code/net-http-server/spec/rack/handler/helpers/test_request.rb:12:in 'block in TestRequest#call' /data/home/postmodern/code/net-http-server/spec/rack/handler/helpers/test_request.rb:10:in 'Array#each' /data/home/postmodern/code/net-http-server/spec/rack/handler/helpers/test_request.rb:10:in 'TestRequest#call' /data/home/postmodern/code/net-http-server/vendor/bundle/ruby/3.4.0/gems/rack-2.2.12/lib/rack/static.rb:161:in...
Ensure the Rack Handler support is fully compatible/compliant with Rack 3.x.