<commit_before>ActiveAvro
==========

[Avro] is a serialization system for data interchange, in the vein of Thrift and
Protocol Buffers, with support for RPC protocol specifications. Unlike these
alternatives, it was designed with friendliness to dynamic languages in mind,
but has received only low-level treatment in Ruby to-date, through [the
implementation maintained in the official Apache repository][avro-ruby].

ActiveAvro aims to extend the baseline Ruby support with:

  - Deserialization into rich Ruby objects using [Virtus].
  - Convenience wrapper APIs for writing/reading Avro data files.
  - Possibly: an optional mixin for ActiveModel conformance, binding lifecycle
    methods of objects to RPC calls with configurable transport.

[Avro]: http://avro.apache.org/
[avro-ruby]: https://github.com/apache/avro/tree/trunk/lang/ruby


Project Status
--------------

This is new project with only basic features implemented, not recommended for
real-world use yet. In particular, only simple Avro schemas are supported (no
complex types), and no ActiveModel or RPC functionality is implemented.
Contributions are welcome :-)


Installation
------------

Add this line to your application's Gemfile:

    gem 'activeavro'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install activeavro


Usage
-----

Given a schema definition:

    { "type": "record",
      "name": "Message",
      "fields" : [
        { "name": "to", "type": "string" },
        { "name": "from", "type": "string" },<commit_msg>Fix missing link in README<commit_after>ActiveAvro
==========

[Avro] is a serialization system for data interchange, in the vein of Thrift and
Protocol Buffers, with support for RPC protocol specifications. Unlike these
alternatives, it was designed with friendliness to dynamic languages in mind,
but has received only low-level treatment in Ruby to-date, through [the
implementation maintained in the official Apache repository][avro-ruby].

ActiveAvro aims to extend the baseline Ruby support with:

  - Deserialization into rich Ruby objects using [Virtus].
  - Convenience wrapper APIs for writing/reading Avro data files.
  - Possibly: an optional mixin for ActiveModel conformance, binding lifecycle
    methods of objects to RPC calls with configurable transport.

[Avro]: http://avro.apache.org/
[avro-ruby]: https://github.com/apache/avro/tree/trunk/lang/ruby
[Virtus]: https://github.com/solnic/virtus


Project Status
--------------

This is new project with only basic features implemented, not recommended for
real-world use yet. In particular, only simple Avro schemas are supported (no
complex types), and no ActiveModel or RPC functionality is implemented.
Contributions are welcome :-)


Installation
------------

Add this line to your application's Gemfile:

    gem 'activeavro'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install activeavro


Usage
-----

Given a schema definition saved in a file:

    { "type": "record",
      "name": "Message",
      "fields" : [
        { "name": "to", "type": "string" },
        { "name": "from", "type": "string" },
{'fraction_non_alphanumeric': 0.10464376590330789, 'fraction_numerical': 0.0, 'mean_word_length': 3.6523668639053253, 'pattern_counts': {'":': 12, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4166494', 'n_tokens_mistral': 875, 'n_tokens_neox': 828, 'n_words': 368}