https://github.com/tmm1/http_parser.rb
simple callback-based HTTP request/response parser
https://github.com/tmm1/http_parser.rb
Keywords from Contributors
activerecord activejob mvc rubygems rack rspec uri-template uri ruby-gem yardoc
Last synced: about 18 hours ago
JSON representation
Repository metadata
simple callback-based HTTP request/response parser
- Host: GitHub
- URL: https://github.com/tmm1/http_parser.rb
- Owner: tmm1
- License: mit
- Fork: true (macournoyer/ruby_http_parser)
- Created: 2010-10-19T23:13:39.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2025-12-23T06:55:20.000Z (2 months ago)
- Last Synced: 2026-02-26T19:44:11.486Z (5 days ago)
- Language: Ruby
- Homepage:
- Size: 198 KB
- Stars: 201
- Watchers: 7
- Forks: 45
- Open Issues: 29
- Releases: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
README.md
http_parser.rb
A simple callback-based HTTP request/response parser for writing http
servers, clients and proxies.
This gem is built on top of joyent/http-parser and its java port http-parser/http-parser.java.
Supported Platforms
This gem aims to work on all major Ruby platforms, including:
- MRI 1.8, 1.9 and 2.0; should work on MRI 2.4+
- Rubinius
- JRuby
- win32
Usage
require "http/parser"
parser = Http::Parser.new
parser.on_headers_complete = proc do
p parser.http_version
p parser.http_method # for requests
p parser.request_url
p parser.status_code # for responses
p parser.headers
end
parser.on_body = proc do |chunk|
# One chunk of the body
p chunk
end
parser.on_message_complete = proc do |env|
# Headers and body is all parsed
puts "Done!"
end
Feed raw data from the socket to the parser
parser << raw_data
Advanced Usage
Accept callbacks on an object
module MyHttpConnection
def connection_completed
@parser = Http::Parser.new(self)
end
def receive_data(data)
@parser << data
end
def on_message_begin
@headers = nil
@body = ''
end
def on_headers_complete(headers)
@headers = headers
end
def on_body(chunk)
@body << chunk
end
def on_message_complete
p [@headers, @body]
end
end
Stop parsing after headers
parser = Http::Parser.new
parser.on_headers_complete = proc{ :stop }
offset = parser << request_data
body = request_data[offset..-1]
Owner metadata
- Name: Aman Karmani
- Login: tmm1
- Email:
- Kind: user
- Description: building Cursor @anysphere. formerly @github, creator of the merge button. founder @fancybits contributor to golang and ffmpeg.
- Website:
- Location: California
- Twitter: tmm1
- Company:
- Icon url: https://avatars.githubusercontent.com/u/2567?u=2d06deeb46222b8e0f6218598f806ecad70367a4&v=4
- Repositories: 438
- Last ynced at: 2025-09-29T16:40:46.179Z
- Profile URL: https://github.com/tmm1
GitHub Events
Total
- Commit comment event: 1
- Issues event: 1
- Watch event: 2
- Issue comment event: 2
- Push event: 3
- Pull request event: 2
- Fork event: 1
Last Year
- Commit comment event: 1
- Issues event: 1
- Watch event: 1
- Issue comment event: 2
- Push event: 3
- Pull request event: 2
- Fork event: 1
Committers metadata
Last synced: 2 days ago
Total Commits: 168
Total Committers: 28
Avg Commits per committer: 6.0
Development Distribution Score (DDS): 0.458
Commits in past year: 7
Committers in past year: 4
Avg Commits per committer in past year: 1.75
Development Distribution Score (DDS) in past year: 0.571
| Name | Commits | |
|---|---|---|
| Aman Gupta | a****n@t****t | 91 |
| Takuro Ashie | a****e@c****m | 15 |
| Robert Payne | r****e@m****m | 10 |
| Satoshi Moris Tagomori | t****s@g****m | 7 |
| Sergey Pariev | s****v@g****m | 6 |
| John W Higgins | w****v@g****m | 4 |
| macournoyer | m****r@g****m | 4 |
| dan sinclair | d****2@e****m | 4 |
| Tony Arcieri | t****i@g****m | 3 |
| Alex Tambellini | a****i@g****m | 2 |
| Erik Michaels-Ober | s****k@g****m | 2 |
| Kentaro Hayashi | h****i@c****m | 2 |
| Tobias L. Maier | t****r@b****m | 2 |
| Konstantin Haase | k****s@g****m | 2 |
| kevin | k****n@k****m | 1 |
| Akira Matsuda | r****e@d****p | 1 |
| Carl Lerche | me@c****m | 1 |
| Charles Oliver Nutter | h****s@h****m | 1 |
| Erick Guan | f****s@g****m | 1 |
| Hiroshi Hatake | h****e@c****m | 1 |
| Ilya Grigorik | i****a@i****m | 1 |
| James Coglan | j****n@g****m | 1 |
| Jordan Sissel | j****s@s****m | 1 |
| Mamoru TASAKA | m****a@f****g | 1 |
| Marcin Cieślak | s****r@s****o | 1 |
| Marek Jelen | m****k@j****z | 1 |
| Nobuyoshi Nakada | n****u@r****g | 1 |
| Yamagishi Kazutoshi | y****s@d****h | 1 |
Committer domains:
- clear-code.com: 3
- desire.sh: 1
- ruby-lang.org: 1
- jelen.biz: 1
- saper.info: 1
- fedoraproject.org: 1
- semicomplete.com: 1
- igvita.com: 1
- headius.com: 1
- carllerche.com: 1
- dio.jp: 1
- kevinformatics.com: 1
- baucloud.com: 1
- everburning.com: 1
- me.com: 1
- tmm1.net: 1
Issue and Pull Request metadata
Last synced: 2 months ago
Total issues: 50
Total pull requests: 37
Average time to close issues: about 1 year
Average time to close pull requests: 10 months
Total issue authors: 46
Total pull request authors: 29
Average comments per issue: 3.6
Average comments per pull request: 2.32
Merged pull request: 30
Bot issues: 0
Bot pull requests: 0
Past year issues: 2
Past year pull requests: 4
Past year average time to close issues: 4 days
Past year average time to close pull requests: about 11 hours
Past year issue authors: 2
Past year pull request authors: 3
Past year average comments per issue: 0.0
Past year average comments per pull request: 1.0
Past year merged pull request: 4
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- HoneyryderChuck (3)
- igrigorik (2)
- jordansissel (2)
- bbozo (1)
- mainameiz (1)
- drewbroadley (1)
- mutepigz (1)
- doriantaylor (1)
- diclophis (1)
- jan (1)
- pravi (1)
- Razunter (1)
- tlewin (1)
- clonezone (1)
- franz-ka (1)
Top Pull Request Authors
- ashie (5)
- robertjpayne (2)
- atambo (2)
- kenhys (2)
- amatsuda (2)
- brianmario (1)
- tarcieri (1)
- erickguan (1)
- pravi (1)
- dj2 (1)
- tagomoris (1)
- spariev (1)
- headius (1)
- rkh (1)
- igrigorik (1)
Top Issue Labels
Top Pull Request Labels
- 1.9 (1)
Package metadata
- Total packages: 27
-
Total downloads:
- rubygems: 325,025,846 total
- Total docker downloads: 3,496,443,622
- Total dependent packages: 103 (may contain duplicates)
- Total dependent repositories: 427,812 (may contain duplicates)
- Total versions: 81
- Total maintainers: 4
gem.coop: http_parser.rb
Ruby bindings to https://github.com/joyent/http-parser and https://github.com/http-parser/http-parser.java
- Homepage: https://github.com/tmm1/http_parser.rb
- Documentation: http://www.rubydoc.info/gems/http_parser.rb/
- Licenses: MIT
- Latest release: 0.8.1 (published 2 months ago)
- Last Synced: 2026-03-02T17:02:30.201Z (1 day ago)
- Versions: 24
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 162,527,280 Total
- Docker Downloads: 1,748,221,811
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.054%
- Docker downloads count: 0.059%
- Downloads: 0.155%
- Maintainers (2)
guix: ruby-http-parser.rb
HTTP parser un Ruby
- Homepage: https://github.com/tmm1/http_parser.rb
- Documentation: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ruby-xyz.scm#n13432
- Licenses: expat
- Latest release: 0.6.0 (published 1 day ago)
- Last Synced: 2026-03-02T18:54:17.321Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 0.344%
- Forks count: 0.674%
- Stargazers count: 0.7%
rubygems.org: http_parser.rb
Ruby bindings to https://github.com/joyent/http-parser and https://github.com/http-parser/http-parser.java
- Homepage: https://github.com/tmm1/http_parser.rb
- Documentation: http://www.rubydoc.info/gems/http_parser.rb/
- Licenses: MIT
- Latest release: 0.8.1 (published 2 months ago)
- Last Synced: 2026-03-02T09:24:20.865Z (2 days ago)
- Versions: 24
- Dependent Packages: 95
- Dependent Repositories: 427,811
- Downloads: 162,488,862 Total
- Docker Downloads: 1,748,221,811
-
Rankings:
- Dependent repos count: 0.041%
- Docker downloads count: 0.081%
- Downloads: 0.133%
- Dependent packages count: 0.332%
- Average: 1.442%
- Stargazers count: 4.011%
- Forks count: 4.054%
- Maintainers (2)
proxy.golang.org: github.com/tmm1/http_parser.rb
- Homepage:
- Documentation: https://pkg.go.dev/github.com/tmm1/http_parser.rb#section-documentation
- Licenses: mit
- Latest release: v0.8.1 (published 2 months ago)
- Last Synced: 2026-03-02T09:24:21.317Z (2 days ago)
- Versions: 6
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Stargazers count: 3.62%
- Forks count: 3.701%
- Average: 6.915%
- Dependent packages count: 9.56%
- Dependent repos count: 10.779%
alpine-v3.18: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r2 (published almost 3 years ago)
- Last Synced: 2026-02-03T16:30:44.577Z (29 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 8.219%
- Stargazers count: 16.089%
- Forks count: 16.787%
- Maintainers (1)
alpine-v3.17: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r1 (published almost 4 years ago)
- Last Synced: 2026-02-03T13:45:20.228Z (29 days ago)
- Versions: 1
- Dependent Packages: 3
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 9.857%
- Average: 9.873%
- Stargazers count: 14.5%
- Forks count: 15.134%
- Maintainers (1)
alpine-v3.16: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r1 (published almost 4 years ago)
- Last Synced: 2026-03-02T14:38:54.742Z (1 day ago)
- Versions: 1
- Dependent Packages: 1
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Average: 10.838%
- Stargazers count: 11.974%
- Forks count: 12.714%
- Dependent packages count: 18.665%
- Maintainers (1)
alpine-v3.15: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r0 (published over 4 years ago)
- Last Synced: 2026-03-01T12:22:07.789Z (3 days ago)
- Versions: 1
- Dependent Packages: 2
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Stargazers count: 10.986%
- Forks count: 11.85%
- Average: 12.105%
- Dependent packages count: 25.585%
- Maintainers (1)
alpine-edge: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r4 (published 11 months ago)
- Last Synced: 2026-03-02T14:28:56.497Z (1 day ago)
- Versions: 4
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Average: 12.291%
- Dependent packages count: 14.641%
- Stargazers count: 17.102%
- Forks count: 17.419%
- Maintainers (1)
conda-forge.org: rb-http_parser.rb
- Homepage: https://rubygems.org/gems/http_parser.rb
- Licenses: MIT
- Latest release: 0.6.0 (published over 6 years ago)
- Last Synced: 2026-02-03T12:11:53.632Z (29 days ago)
- Versions: 1
- Dependent Packages: 2
- Dependent Repositories: 1
-
Rankings:
- Dependent packages count: 19.602%
- Average: 24.253%
- Dependent repos count: 24.343%
- Stargazers count: 25.979%
- Forks count: 27.087%
gem.coop: jls-http_parser.rb
Ruby bindings to http://github.com/ry/http-parser and http://github.com/a2800276/http-parser.java
- Homepage: http://github.com/tmm1/http_parser.rb
- Documentation: http://www.rubydoc.info/gems/jls-http_parser.rb/
- Licenses: mit
- Latest release: 0.5.3.1 (published almost 14 years ago)
- Last Synced: 2026-03-01T04:27:51.290Z (3 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 4,852 Total
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 26.241%
- Downloads: 78.724%
- Maintainers (1)
rubygems.org: jls-http_parser.rb
Ruby bindings to http://github.com/ry/http-parser and http://github.com/a2800276/http-parser.java
- Homepage: http://github.com/tmm1/http_parser.rb
- Documentation: http://www.rubydoc.info/gems/jls-http_parser.rb/
- Licenses: mit
- Latest release: 0.5.3.1 (published almost 14 years ago)
- Last Synced: 2026-03-01T10:01:37.386Z (3 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 4,852 Total
-
Rankings:
- Stargazers count: 3.652%
- Forks count: 3.722%
- Dependent packages count: 15.706%
- Average: 28.374%
- Dependent repos count: 46.782%
- Downloads: 72.01%
- Maintainers (1)
debian-10: ruby-http-parser.rb
- Homepage: http://github.com/tmm1/http_parser.rb
- Documentation: https://packages.debian.org/buster/ruby-http-parser.rb
- Licenses:
- Latest release: 0.6.0-4+deb10u1 (published 21 days ago)
- Last Synced: 2026-02-13T04:22:17.110Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-20.04: ruby-http-parser.rb
- Homepage: http://github.com/tmm1/http_parser.rb
- Licenses:
- Latest release: 0.6.0-4build3 (published 19 days ago)
- Last Synced: 2026-02-13T07:15:11.334Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
alpine-v3.23: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
ubuntu-23.10: ruby-http-parser.rb
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses:
- Latest release: 0.6.0-6build4 (published 18 days ago)
- Last Synced: 2026-02-13T18:22:54.162Z (18 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-22.04: ruby-http-parser.rb
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses:
- Latest release: 0.6.0-6build2 (published 19 days ago)
- Last Synced: 2026-02-13T13:18:42.099Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
ubuntu-23.04: ruby-http-parser.rb
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses:
- Latest release: 0.6.0-6build4 (published 21 days ago)
- Last Synced: 2026-02-11T06:41:22.530Z (21 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-11: ruby-http-parser.rb
- Homepage: https://github.com/tmm1/http_parser.rb
- Documentation: https://packages.debian.org/bullseye/ruby-http-parser.rb
- Licenses:
- Latest release: 0.6.0-6 (published 21 days ago)
- Last Synced: 2026-02-13T08:21:22.488Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
debian-12: ruby-http-parser.rb
- Homepage: https://github.com/tmm1/http_parser.rb
- Documentation: https://packages.debian.org/bookworm/ruby-http-parser.rb
- Licenses:
- Latest release: 0.6.0-6 (published 19 days ago)
- Last Synced: 2026-02-12T23:32:27.384Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
debian-13: ruby-http-parser.rb
- Homepage: https://github.com/tmm1/http_parser.rb
- Documentation: https://packages.debian.org/trixie/ruby-http-parser.rb
- Licenses:
- Latest release: 0.6.0-6 (published 20 days ago)
- Last Synced: 2026-02-13T13:16:24.489Z (19 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
alpine-v3.19: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r2 (published almost 3 years ago)
- Last Synced: 2026-02-26T10:31:51.857Z (6 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
alpine-v3.22: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r4 (published 11 months ago)
- Last Synced: 2026-02-26T10:28:21.139Z (6 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
alpine-v3.20: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r3 (published about 2 years ago)
- Last Synced: 2026-02-03T13:22:22.074Z (29 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
alpine-v3.21: ruby-http_parser.rb
A simple callback-based HTTP request/response parser
- Homepage: https://github.com/tmm1/http_parser.rb
- Licenses: MIT
- Latest release: 0.8.0-r3 (published about 2 years ago)
- Last Synced: 2026-02-26T10:28:32.352Z (6 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 0.0%
- Dependent packages count: 0.0%
- Average: 100%
- Maintainers (1)
Score: 30.834297562489315