Parse Avro AVDL files
To run avro-kit you can use
cargo run idl2schemaor build it
cargo build- Dockerfile
- Fake content based on schema
- nix package
- cli tests with insta
- benchmarks
- Enums
- Alias
- Namespace
- Order
- Annotations
- This one is a bit more complicated, there can be 0..N unique annotations to be parsed, they can be before or after the type. See MultiAnnotations.avdl
- Fixed length
- TODO: default on record?
- Why is it not possible to set an
aliaseson a fixed?
- Records and errors
-
Record -
RecordField - Error
-
- RecordField
- Named schema's
aliasesare for the schema'snamewhich might be namespaced. Record field's aliases are for the field'snamewhich is not namespaced. The field'stypemight be a (namespaced) reference to Schema.src
- Named schema's
- Protocol
- Primitive types
-
string= &str- properly parse unicode strings
-
boolean= bool -
int= i32 -
long= i64 -
float= f32 -
double= f64 -
null= ? -
bytes= [u8]
-
- Logical types
-
uuid-> valid uuidstring -
decimal(logical type decimal) -
date(logical type date) ->int -
time_ms(logical typetime-millis) ->int -
time-microsby@logicalType->long -
timestamp_ms(logical typetimestamp-millis) ->long -
timestamp-microsby@logicalType->long -
duration->fixedtype of size 12- TODO: Validations
- TODO: Improve parsing of default
-
- Complex types
- Arrays
- basic support
- defaults?
- array of array
- Maps
- Unions
- Arrays
- Default values
-
Enum
-
- Comments
- doc (
/** foo */) - comments
- Move everything to use the field_parser
- Write more tests for comments
- doc (
All the people that helped in nom's matrix server!