Giter Site home page Giter Site logo

libcrow_cr's Introduction

Crow Data Format Library in crystal-lang

Compact encoding for typed tabular data. Think of it as a binary CSV file. The encoding format is defined in the Crow Encoding Spec.

Features

  • Uses protobuf encoding formats like varint, zigzag encoding
  • Does not require compilation of proto definitions
  • Fields (e.g. Columns) are defined inline
  • Data can be sparse

Field class - describes a column

The application can refer to columns by IDs (like IPFIX) or Names (like a CSV file with header).

Field
  typeid : CrowType (TINT32, TSTRING, etc.)
  name : String
  id : UInt32
  subid : UInt32  # optional

Usage : Encoding - Column names

enc = Crow::Encoder.new io

enc.put "bob", "Name"
enc.put 23, "Age"
enc.put true, "Active"
enc.put_row_sep

Usage : Decoding

dec = Crow::Decoder.new io
loop do
  rowdata = dec.read_row
  break if rowdata.nil? || rowdata.empty?

  rowdata.each do |item|
    # item.value is actual value (of type String, Int32, etc.)
    # item.field if Field object with id, name of column
  end
end

libcrow_cr's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.