Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making a SPDY "framing layer only" impl #208

Closed
daviddias opened this issue Jun 16, 2015 · 9 comments
Closed

Making a SPDY "framing layer only" impl #208

daviddias opened this issue Jun 16, 2015 · 9 comments

Comments

@daviddias
Copy link
Member

Have you considered stripping out the framing layer of the SPDY implementation, so it can be used as a streams multiplexer for other transports, without requiring a http language on top nor SSL?

I'm currently after that, the end goal would be to make it compatible with https://github.com/docker/spdystream .

From what I managed to figure out of the code, creating a new stream should be something like:

var Connection = require('./../lib/spdy/connection')
var Stream = require('./../lib/spdy/stream')
// ...
var conn = new Connection(socket, {isServer: false})
var s = new Stream(conn, {})

But still trying to be able to figure out which event gets fired when a new SYN_STREAM is received and a new stream is created from one of the sides. Hints?

Thank you!

PS: Tagging @mafintosh as I believe he is also interest in this :)
PPS: I'm daviddias on freenode/#io.js , if you prefer chat

@indutny
Copy link
Collaborator

indutny commented Jun 16, 2015

This sounds very interesting! I'm in the middle of rewrite of the protocol implementation: https://github.com/indutny/node-spdy/tree/feature/http-2 . So it is probably a good idea to postpone it until this will be finished to avoid merge hell.

@jbenet
Copy link

jbenet commented Jun 16, 2015

@indutny what is a ballpark eta for the rewrite --i.e. {days, weeks, months}?

@indutny
Copy link
Collaborator

indutny commented Jun 16, 2015

I would expect a couple of weeks.

@indutny
Copy link
Collaborator

indutny commented Jun 21, 2015

Heya, just wanted to share this WIP with you: https://github.com/indutny/spdy-transport . Working on priority tree atm, going to re-implement PUSH streams right after that.

@daviddias
Copy link
Member Author

@indutny that is fantastic! Huge ^5! Extra thanks for making it transport stream agnostic too, I would be looking to have that so that spdy-transport/spdystream can be one of the protocols on top of multistream-selectspecmodule

Also noticed that you made https://www.npmjs.com/package/stream-pair, going to use this for multistream tests, it makes a whole more sense than always opening sockets.

@jbenet
Copy link

jbenet commented Jun 22, 2015

@indutny thank you for the update, this looks great! particularly applaud the support for all the versions of the protocol-- A+++.

please let us know if we can help with things. we dont mean to get in the way or slow you down, but we're here to help should we be useful.

@indutny
Copy link
Collaborator

indutny commented Jun 22, 2015

@jbenet thank you! There is one thing that I would appreciate being helped with :) Writing tests for SPDY parser. Something like https://github.com/indutny/spdy-transport/blob/master/test/http2/parser-test.js but for all SPDY versions (2 and 3).

@jbenet jbenet mentioned this issue Jun 22, 2015
55 tasks
@daviddias
Copy link
Member Author

Happy to help on that @indutny :)
(currently at MediterreneaJS, but should have something by the end of the week)

@daviddias
Copy link
Member Author

Thank you :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants