{"id":13750687,"url":"https://github.com/matsumotory/mruby-spdy","last_synced_at":"2025-09-12T13:39:18.280Z","repository":{"id":12820858,"uuid":"15496016","full_name":"matsumotory/mruby-spdy","owner":"matsumotory","description":"SPDY Module for mruby","archived":false,"fork":false,"pushed_at":"2016-12-01T04:08:58.000Z","size":529,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-02T17:43:08.341Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://matsumoto-r.github.io/mruby-spdy","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matsumotory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-28T17:20:08.000Z","updated_at":"2019-12-09T14:36:02.000Z","dependencies_parsed_at":"2022-09-07T19:25:05.697Z","dependency_job_id":null,"html_url":"https://github.com/matsumotory/mruby-spdy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matsumotory/mruby-spdy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsumotory%2Fmruby-spdy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsumotory%2Fmruby-spdy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsumotory%2Fmruby-spdy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsumotory%2Fmruby-spdy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matsumotory","download_url":"https://codeload.github.com/matsumotory/mruby-spdy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsumotory%2Fmruby-spdy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274822550,"owners_count":25356542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T08:00:44.276Z","updated_at":"2025-09-12T13:39:18.260Z","avatar_url":"https://github.com/matsumotory.png","language":"C","readme":"# SPDY Module for mruby  [![Build Status](https://travis-ci.org/matsumotory/mruby-spdy.png?branch=master)](https://travis-ci.org/matsumotory/mruby-spdy)\nSPDY module for mruby using [spdylay](https://github.com/tatsuhiro-t/spdylay). You can access Web site using SPDY protocol from mruby applications or devices with mruby.\n\n- [SPDY: An experimental protocol for a faster web](http://www.chromium.org/spdy/spdy-whitepaper) \n\n    As part of the \"Let's make the web faster\" initiative, we are experimenting with alternative protocols to help reduce the latency of web pages. One of these experiments is SPDY (pronounced \"SPeeDY\"), an application-layer protocol for transporting content over the web, designed specifically for minimal latency.\n\n## TODO\nThis is a very early version, please test and report errors. Wellcome pull-request.\n- replace uri parser to mruby-http\n- implement some method (post...)\n- implement some class (Server, Proxy...)\n- write spdy callback function by Ruby block\n\n## example\n- SPDY by mruby\n\n```ruby\nr = SPDY::Client.get 'https://www.google.co.jp/'\n\nr\nr.body\nr.body_length\nr.spdy_version\nr.stream_id\nr.syn_reply\nr.syn_stream\n```\n\n- response\n\n```ruby\n#r\n{\n    :syn_reply=\u003e{\n        \"x-frame-options\"=\u003e\"SAMEORIGIN\", \n        \"x-xss-protection\"=\u003e\"1; mode=block\", \n        \"expires\"=\u003e\"-1\", \n        \"p3p\"=\u003e\"CP=\\\"This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en\u0026answer=151657 for more info.\\\"\", \n        \"server\"=\u003e\"gws\", \n        \"set-cookie\"=\u003e\"; expires=Sun, 29-Jun-2014 17:16:55 GMT; path=/; domain=.google.co.jp; HttpOnly\", \n        \":version\"=\u003e\"HTTP/1.1\", \n        \"alternate-protocol\"=\u003e\"443:quic\", \n        \"cache-control\"=\u003e\"private, max-age=0\", \n        \"content-type\"=\u003e\"text/html; charset=Shift_JIS\", \n        \"date\"=\u003e\"Sat, 28 Dec 2013 17:16:55 GMT\", \n        \":status\"=\u003e\"200 OK\"\n    }, \n    :recieve_bytes=\u003e953.0, \n    :body=\u003e\"\u003chtml\u003e - (snip) - \u003c/html\u003e\", \n    :body_length=\u003e953, \n    :spdy_proto_version=\u003e4, \n    :stream_id=\u003e1, \n    :syn_stream=\u003e{\n        \":method\"=\u003e\"GET\", \n        \":path\"=\u003e\"/\", \n        \":scheme\"=\u003e\"https\", \n        \":version\"=\u003e\"HTTP/1.1\", \n        \":host\"=\u003e\"www.google.co.jp\", \n        \"accept\"=\u003e\"*/*\", \n        \"user-agent\"=\u003e\"mruby-spdy/0.0.1\"\n    }\n}\n\n#r.body\n\"\u003chtml\u003e - (snip) - \u003c/html\u003e\"\n\n#r.body_length\n953\n\n#r.spdy_version\n4\n\n#r.syn_stream\n{\n  \":method\"=\u003e\"GET\",\n  \":path\"=\u003e\"/\",\n  \":scheme\"=\u003e\"https\",\n  \":version\"=\u003e\"HTTP/1.1\",\n  \":host\"=\u003e\"www.google.co.jp\",\n  \"accept\"=\u003e\"*/*\",\n  \"user-agent\"=\u003e\"mruby-spdy/0.0.1\"\n}\n\n#r.syn_reply\n{\n  \"x-frame-options\"=\u003e\"SAMEORIGIN\",\n  \"x-xss-protection\"=\u003e\"1; mode=block\",\n  \"expires\"=\u003e\"-1\",\n  \"p3p\"=\u003e\"CP=\\\"This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en\u0026answer=151657 for more info.\\\"\",\n  \"server\"=\u003e\"gws\",\n  \"set-cookie\"=\u003e\"; expires=Sun, 29-Jun-2014 17:16:55 GMT; path=/; domain=.google.co.jp; HttpOnly\",\n  \":version\"=\u003e\"HTTP/1.1\",\n  \"alternate-protocol\"=\u003e\"443:quic\",\n  \"cache-control\"=\u003e\"private, max-age=0\",\n  \"content-type\"=\u003e\"text/html; charset=Shift_JIS\",\n  \"date\"=\u003e\"Sat, 28 Dec 2013 17:16:55 GMT\",\n  \":status\"=\u003e\"200 OK\"\n}\n\n```\n\n## install by mrbgems\n - add conf.gem line to `build_config.rb`\n\n```ruby\nMRuby::Build.new do |conf|\n\n  # ... (snip) ...\n\n  conf.gem :github =\u003e 'matsumoto-r/mruby-spdy'\nend\n```\n\n - build\n\n```\nrake\n```\n\n# License\nunder the MIT License:\n\n* http://www.opensource.org/licenses/mit-license.php\n\n\n","funding_links":[],"categories":["Utilities"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatsumotory%2Fmruby-spdy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatsumotory%2Fmruby-spdy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatsumotory%2Fmruby-spdy/lists"}