Skip to content

woile/avdl-rs

Repository files navigation

AVDL-RS

Parse Avro AVDL files

CLI

To run avro-kit you can use

cargo run idl2schema

or build it

cargo build

TODO

  • Dockerfile
  • Fake content based on schema
  • nix package
  • cli tests with insta
  • benchmarks

Parsers

  • 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's name which might be namespaced. Record field's aliases are for the field's name which is not namespaced. The field's type might be a (namespaced) reference to Schema.src
  • 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 uuid string
    • decimal (logical type decimal)
    • date (logical type date) -> int
    • time_ms (logical type time-millis) -> int
    • time-micros by @logicalType -> long
    • timestamp_ms (logical type timestamp-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
  • Default values
    • Enum
  • Comments
    • doc (/** foo */)
    • comments
      • Move everything to use the field_parser
      • Write more tests for comments

Resources

Thanks

All the people that helped in nom's matrix server!

About

Apache Avro AVDL parser

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •