carl-anders / slimevr-wrangler

Use Joycons as SlimeVR trackers with this middleware application
Apache License 2.0
122 stars 15 forks source link

Refactor codec into separate crate, relicense it as MIT/Apache 2.0 #4

Closed TheButlah closed 2 years ago

TheButlah commented 2 years ago

To better enable other applications to use Rust with SlimeVR, it would be awesome to create a codec crate that enables serialization/deserialization to/from the SlimeVR server and the SlimeVR firmware.

I have refactored the deku stuff into a new slimevr_codec crate. I also took the liberty of licensing it as MIT/Apache 2.0, since it does not have the dependency on AHRS.

This way, if someone wants to write SlimeVR firmware in rust, or add rust support to some other device, they can easily leverage the slimevr_codec crate to handle the serialization.

carl-anders commented 2 years ago

Thank you for the contribution, but I think the deku implementation that I have wrote for this is not really good enough to be used as a crate. I think a better choice would be making a more comprehensive implementation and then using that crate in slimevr wrangler.

If anyone is looking for a more comprehensive deku implementation of the slimevr codebase, you could check out: https://github.com/abb128/slime-rs/blob/master/src/packet_parsing/types.rs https://github.com/abb128/slime-rs/blob/master/src/packet_parsing/client/packet_types.rs https://github.com/abb128/slime-rs/blob/master/src/packet_parsing/server/packet_types.rs

TheButlah commented 2 years ago

On an additional note, is irrelevant now due to the upcoming flatbuffer changes tp slimevr