# \[ANN\] rasn1 0.4.0 released

**URL:** <https://rubytalk.org/t/ann-rasn1-0-4-0-released/74423>\
**Category:** ruby-talk\
**Created:** [3 December 2017 19:15 UTC](https://rubytalk.org/t/ann-rasn1-0-4-0-released/74423 "2017-12-03T19:15:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sylvain\_Daubert](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@Sylvain\_Daubert](https://rubytalk.org/u/Sylvain_Daubert)\
**Post date:** [3 December 2017 19:15 UTC](https://rubytalk.org/t/ann-rasn1-0-4-0-released/74423/1 "2017-12-03T19:15:18Z")

</div>

rasn1 0.4.0 has been released.

\* home: \<[https://github.com/sdaubert/rasn1](https://github.com/sdaubert/rasn1)\>  
\* bugs: \<[https://github.com/sdaubert/rasn1/issues](https://github.com/sdaubert/rasn1/issues)\>  
\* doc: \<[https://github.com/sdaubert/rasn1/wiki](https://github.com/sdaubert/rasn1/wiki)\>

RASN1 is a pure ruby ASN.1 library. RASN1 helps to create ASN.1 parsers  
and encoders.

The RASN1::Model class is the entry point to create a parser/encoder.

Simple example:  
From ASN1. definition:

&nbsp;&nbsp;Record ::= SEQUENCE {  
&nbsp;&nbsp;&nbsp;&nbsp;id INTEGER,  
&nbsp;&nbsp;&nbsp;&nbsp;room [0] INTEGER OPTIONAL,  
&nbsp;&nbsp;&nbsp;&nbsp;house [1] INTEGER DEFAULT 0  
&nbsp;&nbsp;}

a model may be defined this way:

class Record \< RASN1::Model  
&nbsp;&nbsp;sequence :record,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content: [integer(:id),  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;integer(:room, implicit: 0, optional: true),  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;integer(:house, implicit: 1, default: 0)]  
end

Then, parsing is as simple as:

record = Record.parse(der\_string)  
record[:id] # =\> RASN1::Integer  
record[:id].value # =\> Integer

And encoding:

record[:id].value = 16\_543\_154  
record.to\_der # =\> String

Changes:

### 0.4.0 / 2017-12-03

\* remove support for Ruby 2.1  
\* add #inspect to RASN1::Model and RASN1::Types::\* classes  
\* add a wiki : [https://github.com/sdaubert/rasn1/wiki](https://github.com/sdaubert/rasn1/wiki)
