Skip to content

Commit 619780c

Browse files
committed
feat: initial commit
1 parent 05efc44 commit 619780c

File tree

3 files changed

+84
-0
lines changed

3 files changed

+84
-0
lines changed

rust/catalyst-types/Cargo.toml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[package]
2+
name = "catalyst-types"
3+
version = "0.0.1"
4+
edition.workspace = true
5+
license.workspace = true
6+
authors.workspace = true
7+
homepage.workspace = true
8+
repository.workspace = true
9+
10+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
11+
12+
[lints]
13+
workspace = true
14+
15+
[lib]
16+
name = "catalyst_types"
17+
18+
[dependencies]
19+
anyhow = "1.0.89"

rust/catalyst-types/README.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# CBOR Kit (`cbork`)
2+
3+
This is a CLI tool for operating with CDDL and CBOR.
4+
5+
It will grow over time to provide a number of features, and will be supported by individual `cbork-*` crates.
6+
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"

rust/catalyst-types/src/lib.rs

Whitespace-only changes.

0 commit comments

Comments
 (0)