Create Issues for federation, identity, push and app services endpoints.
Federation: http://matrix.org/speculator/spec/HEAD/server_server/unstable.html Identity: http://matrix.org/speculator/spec/HEAD/identity_service/unstable.html Application: http://matrix.org/speculator/spec/HEAD/application_service/unstable.html Push: http://matrix.org/speculator/spec/HEAD/push_gateway/unstable.html
These will all be separate binaries/repositories. ruma-federation is the only one that exists so far. Not much to do while the client-server API is still in flux and the specs for the other APIs are unstable.
Why you want to separate these parts?
They're all separate APIs, none of which are necessary to run the core client-server API. This allows people to only run the components they need. Looking forward to a deployment of a large homeserver like matrix.org (and hopefully much bigger), it also allows the individual APIs to be horizontally scaled independently based on actual traffic patterns.
We need the same storages for some, than we need to think of spliting storage/models in different repo to integrated, it easily without writing all functions multiple time.
Yeah, for sure. I think it will become more clear how we should organized shared code once we start to work on some of these other APIs.
At the time we integrate ruma-client-api, we should think of sharing Endpoint.
Oh, good idea. Maybe that whole interface should be in a crate on its own, ruma-api. Then ruma-client-api just implements that interface for all the client-server API endpoints.