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

pinterest / elixir-thrift / 306 / 5
91%
master: 91%

Build:
DEFAULT BRANCH: master
Ran 30 Nov 2016 07:37PM UTC
Files 19
Run time 1s
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

30 Nov 2016 07:31PM UTC coverage: 91.054% (-8.2%) from 99.296%
THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker

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%)

28.17 hits per line

Source Files on job 306.5 (THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker)
  • Tree
  • List 0
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 306
  • Travis Job 306.5
  • 819216f8 on github
  • Prev Job for THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker on master (#243.6)
  • Next Job for THRIFT=${TRAVIS_BUILD_DIR}/ci/thrift-docker on master (#309.1)
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