• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pinterest / elixir-thrift / 306
91%

Build:
DEFAULT BRANCH: master
Ran 30 Nov 2016 07:36PM UTC
Jobs 6
Files 19
Run time 5min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
306

push

travis-ci

scohen
Pure elixir implementation (#54)

A pure Elixir implementation of the Thrift binary protocol.

This PR includes serialization and deserialization for all thrift types as well as testing to make sure we match the thrift spec (which can be found here: https://erikvanoosten.github.io/thrift-missing-specification/#_binary_encoding)

The binary protocol is generated alongside the thrift data types, yielding a much faster implementation than the apache project's canonical one. 

Our benchmarks (using benchfella) indicate a speedup of between 10 and 20x.

## Binary Protocol Performance
benchmark name |  iterations | average time 
------------------|-----------|---------------
elixir serialization (left as IOList)                   |  2000  | 849.01 µs/op
elixir serialization (iolist_size)                        |  2000  | 933.83 µs/op
elixir serialization (converted to binary)        | 1000   | 1281.23 µs/op
elixir deserialization                                       |  1000   | 1178.46 µs/op
erlang serialization left as IOList                    |   100   | 10284.84 µs/op
erlang serialization (converted to binary)      |   100   | 11588.89 µs/op
erlang deserialization                                      |   100   | 21433.17 µs/op

285 of 313 relevant lines covered (91.05%)

169.01 hits per line

Jobs
ID Job ID Ran Files Coverage
1 306.1 (THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker) 30 Nov 2016 07:36PM UTC 0
91.03
Travis Job 306.1
2 306.2 (THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker) 30 Nov 2016 07:37PM UTC 0
91.03
Travis Job 306.2
3 306.3 (THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker) 30 Nov 2016 07:37PM UTC 0
91.03
Travis Job 306.3
4 306.4 (THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker) 30 Nov 2016 07:41PM UTC 0
91.05
Travis Job 306.4
5 306.5 (THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker) 30 Nov 2016 07:37PM UTC 0
91.05
Travis Job 306.5
6 306.6 (THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker) 30 Nov 2016 07:39PM UTC 0
91.05
Travis Job 306.6
Source Files on build 306
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #306
  • 819216f8 on github
  • Prev Build on master (#243)
  • Next Build on master (#309)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc