Filbert – a BERT serializer for .Net

Yan Cui

I help clients go faster for less using serverless technologies.

This article is brought to you by

Don’t reinvent the patterns. Catalyst gives you consistent APIs for messaging, data, and workflow with key microservice patterns like circuit-breakers and retries for free.

Try the Catalyst beta

I spent the last couple of nights and put together a small BERT serializer for .Net called Filbert.

 

What’s BERT?

BERT (Binary ERlang Term) is a binary format based on Erlang’s binary serialization format (as used by erlang:term_to_binary/1) but supports a couple of complex types such as boolean, dictionary and time, in additional to the primitive types.

BERT and BERT-RPC was specified by GitHub’s cofound Tom Preston-Werner and bas been in production use at GitHub as part of their infrastructure allowing them to integrate Ruby and Erlang through the Ernie BERT-RPC server.

The encoding format for BERT is the same as Erlang’s external term format which you can read about in great detail here. It is not as highly optimized as something like protocol buffer but is very easy to understand and implement and does not require a separate contract definition file (the .proto file for protocol buffer) in order to be able to serialize a type.

 

How can I try it?

I have yet to put together a Nuget package for Filbert but will do so in the near future, in the mean time why not fork the project on GitHub and try it out for yourself?

I have included a simple F# and C# example project as part of the solution, and if it’s not clear then have a read of the tutorial page to help you get started.

 

I have ensured reasonable test coverage for both encoder and decoder but there are no doubt many edge cases which I haven’t considered and would really appreciate any feedback you have on how best I can improve the solution Smile

Whenever you’re ready, here are 3 ways I can help you:

  1. Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game. This is your one-stop shop for quickly levelling up your serverless skills.
  2. I help clients launch product ideas, improve their development processes and upskill their teams. If you’d like to work together, then let’s get in touch.
  3. Join my community on Discord, ask questions, and join the discussion on all things AWS and Serverless.

1 thought on “Filbert – a BERT serializer for .Net”

  1. Pingback: Filbert – added BERT-RPC client + NuGet | theburningmonk.com

Leave a Comment

Your email address will not be published. Required fields are marked *