{"id":14156573,"url":"https://github.com/mdn/rumba","last_synced_at":"2026-01-27T13:05:08.885Z","repository":{"id":58653322,"uuid":"485367252","full_name":"mdn/rumba","owner":"mdn","description":"The clean kuma (🤖🧹)","archived":false,"fork":false,"pushed_at":"2026-01-19T12:46:50.000Z","size":1920,"stargazers_count":59,"open_issues_count":8,"forks_count":21,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-19T16:55:48.563Z","etag":null,"topics":["rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","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":"2022-04-25T12:43:02.000Z","updated_at":"2026-01-19T09:27:41.000Z","dependencies_parsed_at":"2025-11-27T09:09:44.072Z","dependency_job_id":null,"html_url":"https://github.com/mdn/rumba","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/mdn/rumba","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdn%2Frumba","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdn%2Frumba/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdn%2Frumba/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdn%2Frumba/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdn","download_url":"https://codeload.github.com/mdn/rumba/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdn%2Frumba/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28813237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["rust"],"created_at":"2024-08-17T08:06:36.172Z","updated_at":"2026-01-27T13:05:08.838Z","avatar_url":"https://github.com/mdn.png","language":"Rust","funding_links":[],"categories":["rust"],"sub_categories":[],"readme":"# Rumba\n\nRumba is [MDN's](https://developer.mozilla.org) new back-end. It supersedes [kuma](https://github.com/mdn/kuma) and\nmainly powers [MDN Plus](https://developer.mozilla.org/en-US/plus).\n\n## Quickstart\n\nBefore you can start working with Rumba, you need to:\n\n1. Install [git](https://git-scm.com/) and [Rust](https://www.rust-lang.org/).\n2. Install additional dependencies:\n   - Mac OS `brew install libpq \u0026\u0026 brew link --force libpq`\n   - Ubuntu: `apt install gcc libpq-dev libssl-dev pkg-config`\n3. Run a PostgreSQL instance:\n   - Mac OS: e.g. [Postgres.app](https://postgresapp.com/)\n   - Docker: `docker run --name postgres -p 5432:5432 -e POSTGRES_USER=rumba -e POSTGRES_PASSWORD=rumba -e POSTGRES_DB=mdn -d postgres`).\n4. Run an Elastic instance:\n   - Docker: `docker run --name elastic -p 9200:9200 -p 9300:9300 -e \"discovery.type=single-node\" -d elasticsearch:8.3.3`\n5. Copy `.settings.dev.toml` to `.settings.toml`.\n6. Run `cargo run`.\n7. To create an authenticated session navigate to http://localhost:8000/users/fxa/login/authenticate/?next=%2F and login with your firefox staging account\n8. To check you are logged in and ready to go navigate to http://localhost:8000/api/v1/whoami you should see your logged in user information.\n\n## Formatting \u0026 Linting\n\nAll changes to Rumba are required to be formatted with [Rustfmt](https://doc.rust-lang.org/stable/clippy/index.html) (`cargo fmt --all`) and free of [Clippy](https://doc.rust-lang.org/stable/clippy/index.html) linting errors or warnings (`cargo clippy --all --all-features -- -D warnings`).\n\nTo avoid committing unformatted or unlinted changes, we recommend setting up a pre-commit [Git hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) in your local repository checkout:\n\n```sh\ntouch .git/hooks/pre-commit\nchmod +x .git/hooks/pre-commit\ncat \u003c\u003cEOF \u003e\u003e .git/hooks/pre-commit\n#!/usr/bin/env bash\n\necho \"Running cargo fmt...\"\ncargo fmt --all -- --check\n\necho \"Running cargo clippy...\"\ncargo clippy --all --all-features -- -D warnings\nEOF\n```\n\n## Testing\n\nSee [tests](./tests/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdn%2Frumba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdn%2Frumba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdn%2Frumba/lists"}