--- title: datta tags: wp2 --- # uritemplates To implement a part of wot-serve we had to implement a mapping between the [uritemplates](https://www.rfc-editor.org/rfc/rfc6570) used in the WoT [Forms](https://www.w3.org/TR/wot-thing-description11/#form-uriVariables) and the axum [Paths](https://docs.rs/axum/latest/axum/extract/struct.Path.html). We looked at the crates available and we noticed that [uritemplate](https://crates.io/crates/uritemplate) would fit our needs but it is not updated since 6 years ago with short winded tries to update it. ## Shortcomings - Pre-2018 codebase - Plenty of [clippy](https://rust-lang.github.io/rust-clippy/) triggers - Missing CI - Stale dependencies - `regex` and `thread_local` faults were caught by `cargo audit` - since we wanted to test how our `sifis-generate`d CI behaved, we had [Miri](https://github.com/rust-lang/miri) catch at least one problem while running the test suite ## Mitigation - Since the original developer literally [disappeared](https://github.com/chowdhurya?tab=overview&from=2019-12-01&to=2019-12-31) in 2019 we created a full fork of the crate. - We made sure to update it to the Rust edition 2021 - We addressed all the lints clippy found - We updated the dependencies so `cargo audit` report is clear - We set up the CI using the `sifis-generate` stock rust github template ## Updates and Release Once the project is clear we extended its API to fit the [wot-serve](https://crates.io/crates/datta) needs, updated documentation and prepared a release.