crystal-community / crystal-libraries-needed

A list of libraries that are needed or wanted for the Crystal-Language
141 stars 4 forks source link

Apache Arrow Support #103

Open dsisnero opened 5 years ago

dsisnero commented 5 years ago

Apache Arrow is a cross-language development platform for in-memory data. It is going to be the standard format for all the dataframe type libraries

christopherzimmerman commented 2 years ago

I have started work on this: https://github.com/crystal-data/arrow.cr. I plan to make it fairly similar to the Ruby implementation, which also uses GObject Introspection. Here is a mini example with basically no code written:

b = Arrow::ArrayBuilder.build([1, 2, 3])
s = Arrow::Int32Array.cast(b)

puts s[-1] # => 3
puts s.to_a(Int32) # => [1, 2, 3]

Fair warning, I'm mostly just doing this to add it as a backend to Num.cr, so there might be some non-numeric features left out, always looking for contributors if anyone is interested.