squidpickles / ais

An AIS parser written in Rust
Apache License 2.0
15 stars 9 forks source link

Crate integration in NMEA. #8

Open elpiel opened 2 years ago

elpiel commented 2 years ago

Hello @squidpickles 👋, I'm the community lead of the AeroRust community and one of the co-founders. I've recently landed your crate for parsing AIS messages and I wanted to let you know that we are making efforts to develop an NMEA 0183 crate that is feature rich for Rust. I think AIS messages can be very beneficial to the overall messages that the crate can parse.

Would you be interested to take the AIS parsing and integrate it to the NMEA crate?

https://github.com/AeroRust/nmea

Also, you can come join the community in Discord if you're interested in robotics and aerospace or you want to discuss this idea.

Regards, Lachezar

Ps: I see there is binary data field that uses a Vec, do you know if there is a limit to it, as we support no_std and this is one aspect we should alter to fit NMEA.

squidpickles commented 2 years ago

Hi @elpiel, nice to hear you're interested.

It would definitely be nice to see the ecosystem dealing with NMEA messages expanded.

This is definitely a back-burner project, where I'm slowly expanding the number of AIS message types and fixing bugs / improving performance and ergonomics, but only working on it sporadically.

If you like the interface as is, by all means adopt it as a dependency of your crate, and we can coordinate on versioning etc if you want to re-export any types. Otherwise, I'd be happy to talk about a nicer interface; I think all the AIS objects are fairly complete and descriptive, but the top-level interface is a little funny, mostly due to the way AIS messages get chained together. Very much open to ideas.

I've added a ticket #9 for no_std support. Not sure when it'll happen, but it sounds like a fun little challenge.

So yeah, let me know what you're thinking in terms of the specifics of integration. You're welcome to depend on this crate, and I'm happy to coordinate on releases and sensible interface. Probably do want to keep this existing on its own, too, as some folks (myself included) only have real use for the AIS portion at the moment.

Thanks for reaching out

elpiel commented 2 years ago

Hey, it would be great to add the no_std support so thanks for that! I'll follow the progress.

As for the interface and the integration - I haven't yet taken a look at the API and we can always improve it because I think the same about the NMEA one :sweat_smile:. However, we can definitely put it behind a feature flag and this would make the whole experience with NMEA very pleasant, as other crates have adopted the same methodology.

E.g. Group the sentence types into their own feature flag, we just have to decide how we should group them. This way you can choose only AIS message parsing.

PS: Of course, I will reach out, I'm happy that you responded and are eager to see how we can make this work :yum: