freccia icon indicating copy to clipboard operation
freccia copied to clipboard

Apache Arrow implementation in Nim

freccia

Apache Arrow implementation in Nim

Early experiments

TODO

Producer:

  • [ ] generation of ArrowArray

Consumer:

  • [X] implement Arrow C data interface
  • [X] read ArrowScheme from C interface
  • [X] read numerical data from C ArrowArray
  • [X] zero-copy view as openArray
  • [X] handle null bitmask
  • [X] implement Flatbuffer scheme for metadata
  • [X] parse format string into type + metadata
  • [X] slice/stride view
  • [X] slice/stride iterator

Layouts:

  • [X] handle fixed-size primitive layout
  • [X] handle variable-size binary Layout
  • [X] handle variable-size List layout
  • [ ] handle fixed-size list layout
  • [ ] handle struct layout
  • [ ] handle dense union layout
  • [ ] handle sparse union layout
  • [ ] handle null layout
  • [ ] handle dictionary-encoded layout

Types:

  • [X] Null
  • [X] Int
  • [X] FloatingPoint
  • [X] Binary
  • [!] LargeBinary
  • [X] Utf8
  • [!] LargeUtf8
  • [X] Bool
  • [X] List
  • [!] LargeList
  • [ ] FixedSizeList
  • [ ] FixedSizeBinary
  • [ ] Decimal
  • [ ] Date
  • [ ] Time
  • [ ] Timestamp
  • [ ] Interval
  • [ ] Duration
  • [ ] Struct
  • [ ] Union
  • [ ] Map