3 ms·
> would be really happy to see some good open source compilers with extensible encoding support being listed here This is a shameless plug, and not a compiler
by XAMPPRocky 5y ago
> would be really happy to see some good open source compilers with extensible encoding support being listed here
This is a shameless plug, and not a compiler per se, but it's pretty close[0]. It's a codec framework for ASN.1 in Rust similar to `serde` for other formats if you're aware of that. It uses Rust's traits to define seperate layers for the codec model, and the encoding rules, allowing you to have one model used with many encodings, and share one decoder & encoder for all models. Extensibility just uses the regular Rust `#[non_exhaustive]` attribute. It doesn't support formats like A/UPER yet, but that is coming in the next year. :)
[0]: https://github.com/XAMPPRocky/rasn https://github.com/XAMPPRocky/rasn
- riedel 5y agoThanks, rasn looks really promising!! What are the projects this is used in? How easy is it to use as a codec layer from other programming languages?
- XAMPPRocky 5y ago> What are the projects this is used in? I don't know of any third-party projects that are using it, though from talking to users and looking at the download numbers there are quite a few, they're just closed-source. You can look at the dependent downloads[0] to get an idea of whose using the implementations included with rasn. > How easy is it to use as a codec layer from other programming languages? It's as easy as using any Rust code from other programming languages. Rasn is completely IO-agnostic, it works entirely using byte slices (`&[u8]`). So all that should be required is writing a C-friendly layer if doing this by hand, or using a language specific binding library like PyO3 to generate more friendly bindings. [0]: https://crates.io/crates/rasn/reverse_dependencies https://crates.io/crates/rasn/reverse_dependencies