|
1 | | -# CBOR Kit (`cbork`) |
| 1 | +# Catalyst Types |
2 | 2 |
|
3 | | -This is a CLI tool for operating with CDDL and CBOR. |
| 3 | +This library is designed to streamline the organization and sharing of types across multiple crates. |
| 4 | +It provides a centralized location for reusable, enhanced types that are not specific to a particular domain, such as Cardano. |
4 | 5 |
|
5 | | -It will grow over time to provide a number of features, and will be supported by individual `cbork-*` crates. |
| 6 | +## Purpose |
6 | 7 |
|
7 | | -## Install |
8 | | - |
9 | | -To install this tool run |
10 | | - |
11 | | -```shell |
12 | | -cargo install --git https://github.com/input-output-hk/catalyst-libs.git cbork |
13 | | -``` |
14 | | - |
15 | | -## Features |
16 | | - |
17 | | -### CDDL linter |
18 | | - |
19 | | -[CDDL](#cddl-specifications) (Concise Data Definition Language) |
20 | | -linting CLI tool. |
21 | | -Enables users to check their CDDL code for errors, inconsistencies, and compliance with the CDDL specification. |
22 | | - |
23 | | -#### Currently supports |
24 | | - |
25 | | -* [CDDL][1] |
26 | | -* [CDDL Errata][2] |
27 | | -* [CDDL Extensions][3] |
28 | | - |
29 | | -#### Planned support for |
30 | | - |
31 | | -* [CDDL Modules][4] |
32 | | -* [CDDL Module Standard Library][5] |
33 | | - |
34 | | -## Planned Future Tools within the CLI |
35 | | - |
36 | | -* [ ] A tool to generate a Rust module to decode/encode/validate Data efficiently from a [CDDL](#cddl-specifications) definition. |
37 | | -* [ ] A tool to simply validate [CBOR][6] binary data against a [CDDL](#cddl-specifications) definition. |
38 | | - |
39 | | -## Notes |
40 | | - |
41 | | -There are semantic rules about well-formed [CDDL](#cddl-specifications) files that are not enforced by the grammar. |
42 | | -The full parser does not support these rules currently, but is planned to be extended to validate |
43 | | -those rules in future |
44 | | - |
45 | | -The primary rule that is not currently enforced is that the very first definition in the file is the base type. |
46 | | -We also cannot detect orphaned or missing definitions. |
47 | | - |
48 | | -Both of these are planned for a future release of the tool. |
49 | | - |
50 | | -There may be other checks needed to be performed on the parsed AST for validity. |
51 | | - |
52 | | -## CDDL Specifications |
53 | | - |
54 | | -* [RFC8610][1] |
55 | | -* [RFC8610 Errata][2] |
56 | | -* [RFC9165 CDDL Extensions][3] |
57 | | -* [CDDL Modules][4] |
58 | | -* [CDDL Modules Reference][5] |
59 | | - |
60 | | -[1]: https://www.rfc-editor.org/rfc/rfc8610 "RFC-8610" |
61 | | -[2]: https://www.ietf.org/archive/id/draft-ietf-cbor-update-8610-grammar-01.html "RFC-8610 Errata" |
62 | | -[3]: https://www.rfc-editor.org/rfc/rfc9165 "RFC-9165 CDDL Extensions" |
63 | | -[4]: https://cbor-wg.github.io/cddl-modules/draft-ietf-cbor-cddl-modules.html "CDDL Modules Specification" |
64 | | -[5]: https://github.com/cabo/cddlc "CDDL Modules Standard Library" |
65 | | -[6]: https://datatracker.ietf.org/doc/html/rfc8949 "RFC-8949 CBOR Data Interchange Format" |
| 8 | +* To enhance types that can be utilized across different libraries or projects. |
| 9 | +* To provide utility functions related to types and conversion between types. |
0 commit comments