{"id":20375919,"url":"https://github.com/stcarrez/ada-rest-api-server-benchmark","last_synced_at":"2026-06-05T08:31:32.047Z","repository":{"id":88796671,"uuid":"83474170","full_name":"stcarrez/ada-rest-api-server-benchmark","owner":"stcarrez","description":"Benchmark for REST api on Ada servers","archived":false,"fork":false,"pushed_at":"2019-12-29T09:58:29.000Z","size":20,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-15T07:09:18.935Z","etag":null,"topics":["ada","ada-servers","benchmark","java-container"],"latest_commit_sha":null,"homepage":null,"language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stcarrez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-28T20:04:10.000Z","updated_at":"2020-01-05T14:42:35.000Z","dependencies_parsed_at":"2023-06-12T16:00:22.481Z","dependency_job_id":null,"html_url":"https://github.com/stcarrez/ada-rest-api-server-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-rest-api-server-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-rest-api-server-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-rest-api-server-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-rest-api-server-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stcarrez","download_url":"https://codeload.github.com/stcarrez/ada-rest-api-server-benchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241924453,"owners_count":20043218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ada","ada-servers","benchmark","java-container"],"created_at":"2024-11-15T01:34:01.339Z","updated_at":"2026-06-05T08:31:32.020Z","avatar_url":"https://github.com/stcarrez.png","language":"Ada","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ada REST API Server Benchmark\n\n[![License](http://img.shields.io/badge/license-APACHE2-blue.svg)](LICENSE)\n\nAre you wondering which web container to use for your next web application?\nWhich language are you using? Java or Ada ?\n\nThis project compares several Ada servers and you can compare the results\nagainst several Java containers such as: Tomcat, Jetty, Grizzly or Undertow.\n\nThe project implements the same REST API as the\n[java-rest-api-web-container-benchmark](https://github.com/arcadius/java-rest-api-web-container-benchmark)\nwhich compares several Java web containers.  The REST API is the same for each\nserver (Java or Ada) and it returns the following json result:\n\n  {\"greeting\":\"Hello World!\"}\n\nServer performances are measured by using the [Siege](https://www.joedog.org/)\n\n# Build\n\nTo build the Ada servers, you must have built and installed the following:\n\n* ASF           (https://github.com/stcarrez/ada-asf)\n* AWS      (http://libre.adacore.com/libre/tools/aws/)\n* EWS      (http://embed-web-srvr.sourceforge.net/)\n* Simple Components (http://www.dmitry-kazakov.de/ada/components.htm)\n\nThen build with:\n\n```\n  cd aws \u0026\u0026 gprbuild -Paws_benchmark -p\n  cd asf \u0026\u0026 gprbuild -Pasf_benchmark -p\n  cd ews \u0026\u0026 gprbuild -Pews_benchmark -p\n  cd simple_components \u0026\u0026 gprbuild -Pcomponents_benchmark -p\n```\n\n# Linux Network Stack settings\n\nSiege makes an intensive use of network connections which results in exhaustion of\nTCP/IP port to connect to the server.  This is due to the TCP TIME_WAIT that prevents\nthe TCP/IP port to be re-used for future connections.  To avoid such exhaustion,\nyou should setup the network stack on both the server host and the client host where\nsiege is executed.  You will do this with:\n\n```\n  sudo sysctl -w net.ipv4.tcp_tw_recycle=1\n  sudo sysctl -w net.ipv4.tcp_tw_reuse=1\n```\n\n# Running the benchmark\n\nStart the server that you want to benchmark, for example:\n\n```\n  aws/bin/aws_rest_api\n```\n\nIn another window (or best on another computer), run the Siege benchmark:\n\n```\n  sh run-load-test.sh ada-aws http://localhost:8080/api\n```\n\n(change *localhost* to the IP address of the server if necessary).\n\nResults are produced in the *results* directory and you can plot them\nby using [Gnuplot](http://www.gnuplot.info/).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstcarrez%2Fada-rest-api-server-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstcarrez%2Fada-rest-api-server-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstcarrez%2Fada-rest-api-server-benchmark/lists"}