Newtonian Physics Mockumentary

    thrift-serializer

    1.1.0 • Public • Published

    Thrift Serializer

    A library for serializing a thrift model into bytes.

    How to use

    • Add the library as a depency by adding
    "com.gu" %% "thrift-serializer" % "0.0.1"
    

    to your applications libraryDepencies.

    • You can then use ThriftSerializer in your application:
    import com.gu.thrift.serializer.ThriftSerializer
    
    object myObject extends ThriftSerializer {
    
      def myMethod(thriftObject: MyThriftObject): Unit = {
        val bytes = serializeToBytes(thriftObject)
        //Do something with bytes
      }
    }
    
    • You can use the ThriftDeserializer like this:
    
    MyDeserializer.deserialize(buffer).map(myEvent => {
      // process the event
    }
    
    def myMethod(thriftObject: MyThriftObject): Unit = {
      val bytes = serializeToBytes(thriftObject)
      //Do something with bytes
    }
    

    If there is no compression type recorded in the bytes you wish to deserialize or if you don't want these to be included when serializing a thrift object, you can set the last arguments of the function calls to true. They are false by default.

    MyDeserializer.deserialize(buffer, true).map(myEvent => {
        // process the event
    }
    
    def myMethod(thriftObject: MyThriftObject, true): Unit = {
      val bytes = serializeToBytes(thriftObject)
      //Do something with bytes
    }
    

    How to publish

    • The library is published to Maven Central. To publish, register to Sonatype and get added to Guardian projects.

    • Run sbt release. You will be asked about what version you want the release to be during the release process, you do not have to update it manually.

    Node JS

    • Install using npm
    npm install --save thrift-serializer
    

    in your application or lambda you can decode messages

    var Message = require('your-thrift-model');
    var serializer = require('thrift-serializer');
    
    serializer.read(Message, bytes, function (err, msg) {
        console.log(msg);
    });
    

    or encode them

    var Message = require('your-thrift-model');
    var serializer = require('thrift-serializer');
    
    var message = new Message({
        someData: ''
    });
    
    serializer.write(message, serializer.Compression.Gzip, function (err, bytes) {
        // do something with your bytes, e.g. convert the buffer into a base64 string
        console.log(bytes.toString('base64'));
    });
    

    Keywords

    none

    Install

    npm i thrift-serializer

    DownloadsWeekly Downloads

    0

    Version

    1.1.0

    License

    none

    Last publish

    Collaborators

    • piuccio
    • reetta