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

axum support #19

Open
icepuma opened this issue May 23, 2023 · 4 comments
Open

axum support #19

icepuma opened this issue May 23, 2023 · 4 comments

Comments

@icepuma
Copy link

icepuma commented May 23, 2023

Hey,
love the work you did so far for atrium.
Do you plan on adding axum support for the xrpc-server or what are your plans with this crate?

Best regards
icepuma

@sugyan
Copy link
Owner

sugyan commented May 23, 2023

Thank you very much.
I was recently working on getting firehose to work. I needed to support the subscription feature, so I looked at the atproto repository and found a package called xrpc-server that handles message streams, so I mimicked that.
I didn't think much about using axum, etc. to make pds work at this point, but if the ATrium project is to "implement AT Protocol in Rust," then of course it should be done, and if there is demand for it, I will give priority to it.

Is this an answer to your question?

@icepuma
Copy link
Author

icepuma commented May 23, 2023

I could in fact have a look at the support, make a PR and we discuss it there or am I in the middle of you doing huge overhauls inside the code base?

@sugyan
Copy link
Owner

sugyan commented May 24, 2023

Hmmm, I have not yet established a clear policy on what to do.
I suppose I could move xrpc-server elsewhere and replace it with something entirely new, I'm not doing anything special at this time.
Would it be better to make ATrium an organization and separate each repository, and within that, create the xrpc-server crate from scratch with you as the author?

@icepuma
Copy link
Author

icepuma commented May 24, 2023

Having a crates workspace doesn't hurt, because you need all the classes in one space and a monorepo approach is cool enough imho.
You could provide multiple "server backends" via feature switches like one called "axum", one called "actix", ...
And with the beauty of code generation you only have to write the code once (hopefully :D)

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

No branches or pull requests

2 participants