Hasty Briefsbeta

双语

Show HN: Typed-arrow – compile‑time Arrow schemas for Rust

9 months ago
  • #Rust
  • #Data Processing
  • #Arrow
  • typed-arrow 提供了一种强类型、编译时的方式来在Rust中声明Arrow模式。
  • 将Rust类型直接映射到arrow-rs的类型化构建器/数组和arrow_schema::DataType,零运行时开销。
  • 性能:采用单态化构建器/数组,零动态分发;避免运行时DataType匹配。
  • 安全性:列类型、名称和可空性存在于类型系统中;不匹配会在编译时失败。
  • 互操作性:直接使用arrow-array/arrow-schema类型;无需自定义运行时层。
  • 支持嵌套结构体、列表、字典、时间戳等,并通过编译时模式生成。
  • 示例用法包括为结构体派生Record,以及在编译时模式检查下构建RecordBatch。
  • 可以通过属性在模式或字段级别添加元数据。
  • 支持多种Arrow数据类型,包括基本类型、字符串、二进制、时间、十进制、嵌套类型和字典。
  • 暂不支持BinaryView、Utf8View、ListView、LargeListView和RunEndEncoded类型。