shale
SimpleAMS
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
shale
- Shale v0.9.0 released - a Ruby object mapper and serializer for XML, JSON, TOML, CSV and YAML
- Shale: Ruby object mapper and serializer for JSON, YAML, TOML and XML
- Shale v0.8.0 released - a Ruby object mapper and serializer for XML, JSON, TOML and YAML
- Shale v0.7.0 released - a Ruby object mapper and serializer for XML, JSON, TOML and YAML
- Shale v0.6.0 released - a Ruby object mapper and serializer for XML, JSON, TOML and YAML
- Show HN: Shale – a Ruby object mapper and serializer for JSON, YAML and XML
- Introducing Shale, a Ruby object mapper and serializer for JSON, YAML and XML
SimpleAMS
-
Show HN: Shale – a Ruby object mapper and serializer for JSON, YAML and XML
Serialization/deserialization is such an important part of web development, I have no idea why Rails includes the ancient JBuilder (and very slow since it goes through templating) library, instead of investing in a proper library. Let alone deserializing which is equally important..
I think the API Shale provides is pretty sane. I would probably use it in my next Ruby/Rails project. I don't like the fact that Nokogiri is included by default, it would be nice to declare a core type, and then bring in what you need (JSON, XML, YAML) as a different gem. But that's not a deal breaker for me.
I have created my own serializers in the past (SimpleAMS[1]) because I really detested AMS, no offence to AMS contributors, but AMS library should just die. Rails, and way more importantly Ruby, should come up with an "official" serializers/deserializers library that is flexible enough, rock solid and fast. For instance I had done some benchmarking among common serializer libraries [2] and AMS was crazy slow, without providing much flexibility, really (meaning, slowness is not justified). Others were faster, but were supporting only one JSON spec format (like jsonapi-rb).
Another thing is that most serialization libraries seem to have ActiveSupport as a main dependency (not shale though) which I think is a bit too much, and actually has a performance hit on the methods it provides. I really think that Ruby community can do better here ?
What are some alternatives?
HappyMapper - Object to XML mapping library, using Nokogiri (Fork from John Nunemaker's Happymapper)
alba - Alba is a JSON serializer for Ruby, JRuby and TruffleRuby.
Oga - Oga is an XML/HTML parser written in Ruby.
oj_serializers - ⚡️ Faster JSON serialization for Ruby on Rails. Easily migrate away from Active Model Serializers.
Tomlrb - A Racc based TOML parser
shale-website - Landing page and interactive documentation for Shale - JSON/YAML/TOML/XML mapper and serializer for Ruby.
TOML - Parse TOML. Like a bawss.
grape-entity - An API focused facade that sits on top of an object model.
ROXML - ROXML is a module for binding Ruby classes to XML. It supports custom mapping and bidirectional marshalling between Ruby and XML using annotation-style class methods, via Nokogiri or LibXML.
Nokogiri - Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby.
tomlib - Tomlib is a fast and standards-compliant TOML parser and generator for Ruby.
raabro - a Ruby PEG parser library