Kiwi is a schema-based binary format for efficiently encoding trees of data.
This is a ruby implementation of the kiwi message format, see evanw/kiwi.
Add this line to your application's Gemfile:
gem 'kiwi-schema'And then execute:
$ bundle install Or install it yourself as:
$ gem install kiwi-schema require "kiwi" # This is the encoding of the Kiwi schema "message ABC { int[] xyz = 1; }" schema_bytes = [1, 65, 66, 67, 0, 2, 1, 120, 121, 122, 0, 5, 1, 1] schema = Kiwi::Schema.from_binary(schema_bytes) schema.encode_abc({ "xyz" => [99, -12] }).bytes # => [1, 2, 198, 1, 23, 0] schema.decode_abc(Kiwi::ByteBuffer.new([1, 2, 198, 1, 23, 0])) # => {"xyz"=>[99, -12]}Bug reports and pull requests are welcome on GitHub at https://github.com/haberbyte/kiwi-schema.