Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

Commit

Permalink
Update DESIGN.md
Browse files Browse the repository at this point in the history
Added specification of the two last points as well
  • Loading branch information
kjetilkjeka committed Aug 13, 2017
1 parent fe343de commit f8076a8
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,20 @@

## Design Goals
- High robustness and safety
- Allow error handling in an [idioatmic](https://doc.rust-lang.org/book/second-edition/ch09-00-error-handling.html) fashion
- Following the rust API [Type safety guidelines](https://rust-lang-nursery.github.io/api-guidelines/type-safety.html)
- Following the rust API [dependability guidelines](https://rust-lang-nursery.github.io/api-guidelines/dependability.html)
- The tests should provide a reasonable coverage.
- Be explicit in what kind of guarantees the library provides (and also in the lack of guarantees).
- Feature-completeness, suitability for complex applications (like Libuavcan, unlike Libcanard). This includes:
- rpc like features on top of service frames both from a caller and responder perspective. The caller should be able to choose between synchronous and asynchronous alternatives.
- Provide common application level functionality. To make the implementation as maintainable as possible, these should require as little knowledge of the internals as possibly. They will more often than not exist in their own crate depending on the other uavcan crates. Some of the feature that will be supported is listed here:
- Network discovery
- Time synchronization
- Dynamic ID allocation server and client
- Ease of use
- Follow the rust [API guidelines](https://rust-lang-nursery.github.io/api-guidelines/about.html)
- Using "ease of use" as a metric when discussing addition/changes
- Assume as little as possible about the application and hardware
- The library should be useful in the following scenarios:
- Bare metal environment
Expand Down

0 comments on commit f8076a8

Please sign in to comment.