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

Things blocking or slowing progress of Ruma #189

Open
jimmycuadra opened this issue Aug 16, 2017 · 14 comments

Comments

Projects
None yet
7 participants
@jimmycuadra
Copy link
Member

commented Aug 16, 2017

I'm creating this issue as a place to keep track of the things in the Rust and Matrix ecosystems that are completely blocking or slowing the progress of Ruma (the homeserver as well as supporting libraries.) We can use it to track the status of these blockers and as a place to link people wondering about the status of the project.

Rust (blocking implementation)

  • Release of http: blocks the use of these shared HTTP types being used in ruma-api, the integration of these types in hyper, and the integration of these types in downstream web frameworks we'd consider using, such as Gotham, Rocket, a renewed version of Iron, or something we build ourselves on Hyper
  • Adoption of the http crate in hyper (tracking issue): blocks adoption of an http-crate-based hyper in web frameworks we might want to use
  • Adoption of the http crate in an async web framework: blocks our ability to use an http-crate-based ruma-api with said web framework
  • Stabilization of async/await (RFC 2033, tracking issue): blocks ergonomic use of async code
  • Choosing a web framework once they all support async/await

Rust (blocking stabilization/release)

Matrix (blocking implementation)

  • Client-server API specification r0.3.0 (or whatever the release after r0.2.0 ends up being): blocks some aspects of progress on the client-server API, notably end-to-end encryption support
  • A stable release of the server-server API specification: blocks ruma-federation-server
  • A stable release of the application service API specification: blocks future application services in Rust using Ruma libraries
  • A stable release of the identity service API specification: blocks a future identity service in Rust using Ruma libraries
  • A stable release of the push gateway API specification: blocks a future push gateway in Rust using Ruma libraries

Matrix (blocking stabilization/release)

This is just a list of issues we've opened against the Matrix spec in the process of building Ruma. It includes places where things are wrong/misleading/undocumented. At least some of these are likely to be resolved in new versions of the specs listed above.

@farodin91

This comment has been minimized.

Copy link
Member

commented Aug 16, 2017

This month, i have some task to do for the current term. Next i will try to implement, something like the dendrite room server style.

@vbrandl

This comment has been minimized.

Copy link

commented May 13, 2018

I'm not sure if you are still actively working on ruma, but some of your issues seem to be resolved by now:

  • impl Trait has been stabelized in Rust 1.26.0
  • there is an async web framework, that uses the http crate: https://github.com/actix/actix-web
    I haven't used it myself but it looks promising
@lnicola

This comment has been minimized.

Copy link

commented May 13, 2018

There's also https://gotham.rs/, based on hyper. And hyper 0.12 will come out in a couple of days with full support for the http types.

@jimmycuadra

This comment has been minimized.

Copy link
Member Author

commented May 15, 2018

Yes, the project is still active and we're still following developments of the things in the issue description. We're not likely to change the HTTP framework we use for a while longer, but keeping an eye on what's out there.

@lnicola

This comment has been minimized.

Copy link

commented May 15, 2018

I'm not sure about the future of iron, though.

@Serkan-devel

This comment has been minimized.

Copy link

commented May 15, 2018

Why not rocket.rs?

@jimmycuadra

This comment has been minimized.

Copy link
Member Author

commented May 15, 2018

We may end up switching to any of the existing frameworks, or perhaps one that doesn't even exist yet. Things are still moving fast and it's too soon to tell.

@bachp

This comment has been minimized.

Copy link

commented Jul 18, 2018

I think actix-web makes use of the http crate. It is also working on stable rust.

@Half-Shot

This comment has been minimized.

Copy link

commented Feb 8, 2019

@jimmycuadra Are some of the matrix issues resolved with release of the S2S spec?

@jimmycuadra

This comment has been minimized.

Copy link
Member Author

commented Feb 8, 2019

Yes, I have updated the description at the top! Thanks.

@lnicola

This comment has been minimized.

Copy link

commented Feb 8, 2019

Adoption of the http crate in an async web framework: blocks our ability to use an http-crate-based ruma-api with said web framework

hyper, tower-web, gotham, tide and actix-web all use http, IIUC.

@jimmycuadra

This comment has been minimized.

Copy link
Member Author

commented Feb 8, 2019

That is true, but the spirit of that line was more about deciding which framework to choose, which I think hinges more on async/await than use of the http crate at this point. I'll update the items to better reflect that.

@lnicola

This comment has been minimized.

Copy link

commented Apr 13, 2019

Stabilization of the TryFrom and TryInto traits

You can tick that off :-).

@Half-Shot

This comment has been minimized.

Copy link

commented Apr 13, 2019

@ruma ruma deleted a comment from Serkan-devel Apr 13, 2019

@ruma ruma deleted a comment from aaronraimist Apr 13, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.