---
# System prepended metadata

title: datta
tags: [wp2]

---

---
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.


