Parse Avro AVDL files
To run avro-kit you can use
cargo run idl2schema
or 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
aliases
on a fixed?
- Records and errors
-
Record
-
RecordField
- Error
-
- RecordField
- Named schema's
aliases
are for the schema'sname
which might be namespaced. Record field's aliases are for the field'sname
which is not namespaced. The field'stype
might 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-micros
by@logicalType
->long
-
timestamp_ms
(logical typetimestamp-millis
) ->long
-
timestamp-micros
by@logicalType
->long
-
duration
->fixed
type 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!