Skip to content

Comparing some Ruby TOML implementations using toml-test

Notifications You must be signed in to change notification settings

gyfis/toml-comparison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby TOML comparison

This repository contains the scripts used to compare some of the more popular/promising Ruby TOML implementations.

How to run?

  1. Clone the repo with submodules:
git clone --recurse-submodules
  1. Fix tomlrb to work with decoder tester
sed -i '' -e 's#require "tomlrb#require_relative "tomlrb#g' 'implementations/tomlrb/lib/tomlrb.rb'
sed -i '' -e "s#require 'tomlrb#require_relative 'tomlrb#g" 'implementations/tomlrb/lib/tomlrb.rb'
sed -i '' -e 's#require "tomlrb/generated_parser"#require_relative "generated_parser"#g' 'implementations/tomlrb/lib/tomlrb/parser.rb'
  1. Build the toml-test binary
cd toml-test
go build ./cmd/toml-test
  1. Run the tests
./test_gems.sh

Sample results

I run this on my Macbook Air (M1, 2020):

There are 306 test cases in toml-test. Here are the comparison results:

Gem Failed cases Duration*
toby 89 121.9s
toml 89 58.97s
toml-rb 80 134.45s
tomlrb 23 41.1s

*I averaged three test runs for each gem.

Based on these test runs, tomlrb comes on the top when comparing both v1.0.0 TOML spec compliance as well as speed performance.

About

Comparing some Ruby TOML implementations using toml-test

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published