valence-rs/valence

Make `valence_protocol` usable for other projects

CryptForge opened this issue · 1 comments

Describe the problem related to your feature request.

I'm working on my own project and I realized that there isn't a good minecraft protocol crate.
valence_protocol is good, but it's very interwoven with the rest of valence.

What solution would you like?

Ideally the protocol would be a completely separate project, but that would require a lot of changes and the seperation of other valence crates.
So a (relatively) simple change could be to remove unnecessary dependencies from valence_protocol, mainly bevy_ecs.

What alternative(s) have you considered?

I'm currently making a new protocol crate, but I'd rather just use an already existing one.

rj00a commented

The intent was always to make bevy_ecs an optional dependency but I never got around to it. That should be easy since it's just used for #[derive(Component)] in a few places. base64 and url could probably be cut too.

Other than that, I don't think valence_protocol can be made any less opinionated than it already is, due to all the different domains it needs to touch. Dependencies like valence_text, valence_ident, and valence_nbt are intended to be usable as standalone crates too.