Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Kemal Github API

Mock Github API implemented with Kemal to be used as a benchmark suite.

What's used?

Crystal: 0.27.1 Kemal: 0.25.1

Ruby Version: 2.5.3p101 Sinatra Version: v2.0.4 Puma: 3.12.0

Install

Clone the repo

git clone https://github.com/sdogruyol/kemal-github-api
cd kemal-github-api

Crystal

crystal build --release src/kemal-github-api.cr -o bin/kemal-github-api
./bin/kemal-github-api

Ruby

gem install sinatra puma
ruby sinatra-github-api.rb -s Puma

Benchmarks

Kemal

~ wrk -c 100 -d 40 http://localhost:3000/applications/123/tokens/123
Running 40s test @ http://localhost:3000/applications/123/tokens/123
  2 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     2.18ms  716.18us  15.30ms   83.69%
    Req/Sec    23.17k     2.30k   27.74k    72.88%
  1844181 requests in 40.02s, 189.94MB read
Requests/sec:  46085.66
Transfer/sec:      4.75MB

Sinatra

➜  ~ wrk -c 100 -d 40 http://localhost:3000/applications/123/tokens/123
Running 40s test @ http://localhost:3000/applications/123/tokens/123
  2 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.06ms    3.08ms  46.54ms   80.29%
    Req/Sec     1.98k   810.65     3.32k    58.12%
  157497 requests in 40.03s, 25.83MB read
Requests/sec:   3934.54
Transfer/sec:    660.88KB

Contributing

  1. Fork it ( https://github.com/sdogruyol/kemal-github-api/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

About

Github API routes benchmark for Kemal

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.