{"id":28438131,"url":"https://github.com/parse-community/benchmark","last_synced_at":"2025-06-28T15:31:09.372Z","repository":{"id":38802743,"uuid":"202624833","full_name":"parse-community/benchmark","owner":"parse-community","description":"Parse Server Continuous Benchmark","archived":false,"fork":false,"pushed_at":"2023-05-25T11:56:42.000Z","size":5885,"stargazers_count":25,"open_issues_count":17,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-17T07:34:13.924Z","etag":null,"topics":["benchmark","mongodb","parse-server","postgres"],"latest_commit_sha":null,"homepage":"https://benchmark.parseplatform.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parse-community.png","metadata":{"funding":{"github":"parse-community","patreon":null,"open_collective":"parse-server","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-08-15T23:28:45.000Z","updated_at":"2025-03-16T02:55:04.000Z","dependencies_parsed_at":"2023-09-24T05:25:34.348Z","dependency_job_id":null,"html_url":"https://github.com/parse-community/benchmark","commit_stats":{"total_commits":22,"total_committers":5,"mean_commits":4.4,"dds":0.5,"last_synced_commit":"a7453399d2f3f3d2a44e026423b75676b2f657e1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/parse-community/benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parse-community%2Fbenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parse-community%2Fbenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parse-community%2Fbenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parse-community%2Fbenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parse-community","download_url":"https://codeload.github.com/parse-community/benchmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parse-community%2Fbenchmark/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261025759,"owners_count":23099089,"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":["benchmark","mongodb","parse-server","postgres"],"created_at":"2025-06-06T00:39:20.510Z","updated_at":"2025-06-28T15:31:09.366Z","avatar_url":"https://github.com/parse-community.png","language":"JavaScript","funding_links":["https://github.com/sponsors/parse-community","https://opencollective.com/parse-server"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Parse Platform\" src=\"https://raw.githubusercontent.com/parse-community/benchmark/master/.github/logo-large.png\" width=\"200\"\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003eBenchmark for Parse Server\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n    A HTTP/1.1 benchmarking tool for Parse Server backends.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?screen_name=parseplatform\"\u003e\u003cimg alt=\"Follow on Twitter\" src=\"https://img.shields.io/twitter/follow/parseplatform?style=social\u0026label=Follow\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://community.parseplatform.org/\"\u003e\u003cimg alt=\"Join the conversation\" src=\"https://img.shields.io/discourse/https/community.parseplatform.org/topics.svg\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/parse-community/benchmark/blob/master/LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-Apache%202.0-lightgrey.svg\"\u003e\u003c/a\u003e\n    \u003ca href=\" https://travis-ci.com/parse-community/benchmark\"\u003e\u003cimg alt=\"Build status\" src=\"https://travis-ci.com/parse-community/benchmark.svg?branch=master\"\u003e\u003c/a\u003e\n    \u003ca href=\"#backers\"\u003e\u003cimg alt=\"Backers on Open Collective\" src=\"https://opencollective.com/parse-server/backers/badge.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"#sponsors\"\u003e\u003cimg alt=\"Sponsors on Open Collective\" src=\"https://opencollective.com/parse-server/sponsors/badge.svg\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"http://codecov.io/github/parse-community/benchmark?branch=master\"\u003e\u003cimg alt=\"Test coverage\" src=\"http://codecov.io/github/parse-community/benchmark/coverage.svg?branch=master\"\u003e\u003c/a\u003e\n    \u003c!-- \u003ca href=\"https://npmjs.org/parse\"\u003e\u003cimg alt=\"npm version\" src=\"https://badge.fury.io/js/parse.svg\"\u003e\u003c/a\u003e --\u003e\n    \u003c!-- \u003ca href=\"https://cdnjs.com/libraries/parse\"\u003e\u003cimg alt=\"CDNJS version\" src=\"https://img.shields.io/cdnjs/v/parse.svg\"\u003e\u003c/a\u003e --\u003e\n    \u003c!-- \u003ca href=\"https://greenkeeper.io/\"\u003e\u003cimg alt=\"Greenkeeper badge\" src=\"https://badges.greenkeeper.io/parse-community/benchmark.svg\"\u003e\u003c/a\u003e --\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Getting Started\n\nParse Benchmark is a highly configurable tool for testing Parse Server [instances][server] against different [load tests][benchmark].\n\nThis tool also features a trigger bot that queues merged pull requests on [Parse Server][parse-server] repo and runs benchmarks.\n\nThe results can be view on the benchmark [website][website].\n\n### Setup Mongodb\n\n```\n$ npm install -g mongodb-runner\n$ mongodb-runner start\n```\n***Note:*** *If installation with* `-g` *fails due to permission problems* (`npm ERR! code 'EACCES'`), *please refer to [this link][npm-permissions].*\n\n\n### Setup PostgreSQL\n\nInstall [PostgreSQL][postgres].\nIf you have Mac the [PostgreSQL App][postgres-app] is recommended.\n```\n$ psql -c 'create database parse_benchmark;' -U postgres\n$ psql -c 'CREATE EXTENSION postgis;' -U postgres -d parse_benchmark\n$ psql -c 'CREATE EXTENSION postgis_topology;' -U postgres -d parse_benchmark\n```\n\n## Running Benchmark\n\n### Locally\n\n```\n$ git clone https://github.com/parse-community/benchmark.git\n$ cd benchmark\n$ npm install\n$ npm start\n```\n\n### Usage\n\n```\n-c, --connections The number of concurrent connections to use. default: 10.\n-p, --pipelining  The number of pipelined requests to use. default: 1.\n-d, --duration    The number of seconds to run the autocannnon. default: 10.\n-o, --output      Output to JSON file. default: result.json\n-h, --help        output usage information\n```\n\n#### One to One Benchmark\n\nYou can pass in the file name of the [server][server] and [benchmark][benchmark] to test against.\n\n```\n$ npm start -- test \u003cserver\u003e \u003cbenchmark\u003e \u003cargs\u003e  # runs one to one benchmark test\n```\n\nExample: [servers/mongo][server] [benchmarks/get][benchmark]\n\n```\n# 100 connections, 1 thread, run for 20 seconds\n$ npm start -- test mongo get -c 100 -p 1 -d 20\n```\n\n#### All Benchmarks\n\n```\n$ npm start -- run \u003cargs\u003e\n```\n\n#### Connect to any server\n\nThis tool uses [autocannon][autocannon] under the hood. You can pass options directly to run against any server.\n\nThe is a sample json file [options.sample.json](options.sample.json).\n\nLearn more about options [here][autocannon-options].\n\n```\n$ npm start -- options \u003cpath to json\u003e \u003cargs\u003e\n```\n\n### Environment Variables\n\n```\nPARSE_APP_NAME: 'Parse Server Benchmark',\nPARSE_APP_ID: 'app-id',\nPARSE_JAVASCRIPT_KEY: 'javascript-key',\nPARSE_MASTER_KEY: 'master-key',\nPARSE_MOUNT_PATH: '/',\nPARSE_PORT: 1337,\nSERVER_URL: 'http://localhost:1337`,\nDATABASE_URL: 'postgres://localhost:5432/parse_benchmark',\nMONGODB_URI: 'mongodb://localhost:27017/parse_benchmark',\nCOLLECTION_PREFIX: 'test_',\nVERBOSE: false,\nCLEAR: false, # If set clears database before each test\n```\n\n## Debugging\n\nYou can track the progress of your benchmark setting the `DEBUG=1` environment variable.\n\nYou can generate detailed server logs by setting `VERBOSE=1`.\n\n## Roadmap\n\nYou can track the progress of this project [here][project].\n\n[autocannon]: https://github.com/mcollina/autocannon\n[autocannon-options]: https://github.com/mcollina/autocannon#usage\n[benchmark]: https://github.com/parse-community/benchmark/tree/master/benchmarks\n[project]: https://github.com/parse-community/benchmark/projects\n[server]: https://github.com/parse-community/benchmark/tree/master/servers\n[parse-server]: https://github.com/parse-community/parse-server\n[website]: http://benchmark.parseplatform.org\n[npm-permissions]: https://docs.npmjs.com/getting-started/fixing-npm-permissions\n[postgres]: https://www.postgresql.org/download/\n[postgres-app]: https://postgresapp.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparse-community%2Fbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparse-community%2Fbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparse-community%2Fbenchmark/lists"}