{"id":21169458,"url":"https://github.com/smarr/rebenchdb","last_synced_at":"2025-10-10T03:33:19.668Z","repository":{"id":41350565,"uuid":"228947636","full_name":"smarr/ReBenchDB","owner":"smarr","description":"ReBenchDB records benchmark results and provides customizable reporting to track and analyze run-time performance of software programs.","archived":false,"fork":false,"pushed_at":"2025-09-27T21:31:40.000Z","size":9367,"stargazers_count":17,"open_issues_count":48,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-27T23:34:02.759Z","etag":null,"topics":["benchmarking","continuous-benchmarking","continuous-testing","performance-analysis","performance-monitoring","performance-tracking","reproducibility","research-tool","science"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smarr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-19T01:01:39.000Z","updated_at":"2025-06-08T16:42:22.000Z","dependencies_parsed_at":"2023-02-19T02:31:35.665Z","dependency_job_id":"de3dce1f-d304-420e-9794-52c265dfe077","html_url":"https://github.com/smarr/ReBenchDB","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/smarr/ReBenchDB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FReBenchDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FReBenchDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FReBenchDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FReBenchDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smarr","download_url":"https://codeload.github.com/smarr/ReBenchDB/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smarr%2FReBenchDB/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002624,"owners_count":26083425,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["benchmarking","continuous-benchmarking","continuous-testing","performance-analysis","performance-monitoring","performance-tracking","reproducibility","research-tool","science"],"created_at":"2024-11-20T15:30:18.443Z","updated_at":"2025-10-10T03:33:19.644Z","avatar_url":"https://github.com/smarr.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReBenchDB\n\n[![Build Status](https://travis-ci.com/smarr/ReBenchDB.svg?branch=master)](https://travis-ci.com/smarr/ReBenchDB)\n[![Documentation](https://readthedocs.org/projects/rebench/badge/?version=latest)](https://rebench.readthedocs.io/)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1311762.svg)](https://doi.org/10.5281/zenodo.1311762)\n\nReBenchDB records benchmark results and provides customizable reporting\nto track and analyze run-time performance of software programs.\nIt is used for example to track the performance of multiple language implementations,\nincluding [SOMns](https://github.com/smarr/SOMns) and other implementations\nfrom the [family of Simple Object Machines](https://som-st.github.io/).\n[ReBench](https://github.com/smarr/ReBench) is currently the main benchmark\nrunner to record data for ReBenchDB.\n\n## Goals and Features\n\nReBenchDB is designed to\n\n- record and store benchmark measurements\n- track information about the environment in which the benchmarks were executed\n- enable performance tracking over time\n- enable performance comparison of experiments\n\n### Features\n\n- compare performance between specific commits\n  - show aggregated results on an overview plot\n  - give summary statistics\n  - show per-benchmark details\n    - a plot that allows to judge noise\n    - a plot with per-iteration data\n    - a plot of previous results\n    - various metrics and the command line\n    - profiling information\n  - compare performance across different executors\n- per-project timeline view\n- per-project data inventory and data export\n\n## Non-Goals\n\nReBenchDB isn't\n\n- a benchmark runner or benchmarking framework:\n  Check [ReBench](https://github.com/smarr/ReBench) if you need one\n- a statistics library:\n  We currently use R for our statistic needs, but anything outputting HTML would be suitable.\n\n## Docker/Podman Setup\n\nThe repository contains a `Dockerfile` and a `docker-compose.yml`, which will\ninstall all dependencies and setup the required PostgreSQL database.\n\nWith Docker, this should be usable with:\n\n```bash\ndocker compose -f ./docker-compose.yml up\n```\n\nFor Podman users, podman-compose is needed:\n\n```bash\npip3 install podman-compose  # if not already available\npodman-compose up\n```\n\n## Installation and Usage\n\n\u003ca id=\"install\"\u003e\u003c/a\u003e\n\nReBenchDB is implemented in TypeScript on top of Node.js.\nData is stored in a PostgreSQL database.\nCustom reports are executed via a shell script, though, we use R to create\nreports.\n\nTo ensure that the SVG for plots is generated using a font available in most browsers,\nthe server needs them when generating plots. We currently use Arial as default font.\n\nOn Ubuntu, these fonts can be installed with:\n\n```bash\napt install ttf-mscorefonts-installer\n```\n\nTODO: write a detailed description on what is required to set things up.\n\n## Support and Contributions\n\nIn case you encounter issues,\nplease feel free to [open an issue](https://github.com/smarr/ReBenchDB/issues/new)\nso that we can help.\n\nFor contributions, we use the [GitHub flow](https://guides.github.com/introduction/flow/)\nof pull requests, discussion, and revisions. For larger contributions,\nit is likely useful to discuss them upfront in an issue first.\n\n## Similar Projects\n\n[Codespeed](https://github.com/tobami/codespeed/) \"is a web application to monitor\nand analyze the performance of your code.\" We used it for almost 10 years before\nstarting ReBenchDB. As such it provided a lot of inspiration and at this point,\nis a more mature and proven alternative.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarr%2Frebenchdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmarr%2Frebenchdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmarr%2Frebenchdb/lists"}