{"id":37064336,"url":"https://github.com/opendp/tumult-analytics","last_synced_at":"2026-01-14T07:31:06.072Z","repository":{"id":292429528,"uuid":"979548255","full_name":"opendp/tumult-analytics","owner":"opendp","description":"Tumult Analytics is a Python library for privately computing aggregate queries on tabular data. It is built atop the Tumult Core library.","archived":false,"fork":false,"pushed_at":"2025-11-08T12:02:57.000Z","size":5121,"stargazers_count":12,"open_issues_count":34,"forks_count":4,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-11-08T14:16:00.372Z","etag":null,"topics":["differential-privacy","privacy","pyspark"],"latest_commit_sha":null,"homepage":"","language":"Python","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/opendp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","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":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-07T17:25:23.000Z","updated_at":"2025-11-04T09:14:07.000Z","dependencies_parsed_at":"2025-05-30T11:34:28.878Z","dependency_job_id":"e44a2a0f-8e17-4409-af02-4dce0efef2c7","html_url":"https://github.com/opendp/tumult-analytics","commit_stats":null,"previous_names":["opendp/tumult-analytics"],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/opendp/tumult-analytics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendp%2Ftumult-analytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendp%2Ftumult-analytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendp%2Ftumult-analytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendp%2Ftumult-analytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opendp","download_url":"https://codeload.github.com/opendp/tumult-analytics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opendp%2Ftumult-analytics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["differential-privacy","privacy","pyspark"],"created_at":"2026-01-14T07:31:05.286Z","updated_at":"2026-01-14T07:31:06.057Z","avatar_url":"https://github.com/opendp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PyPI - Version](https://img.shields.io/pypi/v/tmlt-analytics?color=006dad)](https://pypi.org/project/tmlt-analytics/) |\n[![Documentation - Latest](https://img.shields.io/badge/documentation-latest-cc3d56)](https://docs.tmlt.dev/analytics/latest/) |\n[![Join our Slack!](https://img.shields.io/badge/Join%20our%20Slack!-634ad3?logo=slack)][slack]\n\n[slack]: https://join.slack.com/t/opendp/shared_invite/zt-1aca9bm7k-hG7olKz6CiGm8htI2lxE8w\n\n# Tumult Analytics — an OpenDP project\n\nTumult Analytics is a Python library to execute differentially private\noperations on data, with a strong emphasis on usability and scalability. It is\nbuilt atop the [Tumult Core library](https://github.com/opendp/tumult-core).\n\nIt was originally developed by\n[Tumult Labs](https://www.linkedin.com/company/tmltlabs), and joined the\n[OpenDP project](https://opendp.org) after the Tumult Labs team joined LinkedIn.\n\n## Demo video\n\nWant to see Tumult Analytics in action? Check out this video introducing the\ninterface fundamentals:\n\n[![Screenshot of the demo video](https://img.youtube.com/vi/SNfbYOp0CEs/0.jpg)](https://www.youtube.com/watch?v=SNfbYOp0CEs)\n\nA selection of more advanced features is shown on the second part of this demo,\nin a [separate video](https://www.youtube.com/watch?v=BRUPlfwzHHo).\n\n## Installation\n\nSee the [installation instructions in the documentation](https://docs.tmlt.dev/analytics/latest/installation.html#prerequisites)\nfor information about setting up prerequisites such as Spark.\n\nOnce the prerequisites are installed, you can install Tumult Analytics using [pip](https://pypi.org/project/pip).\n\n```bash\npip install tmlt.analytics\n```\n\n## Documentation\n\nThe full documentation is located at https://docs.tmlt.dev/analytics/latest/.\n\n## Support\n\nIf you have any questions, feedback, or feature requests, please reach out via the [OpenDP Slack][slack].\n\n## Contributing\n\nWe welcome external volunteers! If you are interested in contributing, please\nlet us know on [Slack][slack].\n\nSee [CONTRIBUTING.md](https://github.com/opendp/tumult-analytics/blob/main/CONTRIBUTING.md) for information about installing our development dependencies and running tests.\n\n## Citing Tumult Analytics\n\nIf you use Tumult Analytics for a scientific publication, we would appreciate citations to the published software or/and its whitepaper. Both citations can be found below; for the software citation, please replace the version with the version you are using.\n\n```\n@software{tumultanalyticssoftware,\n    author = {Tumult Labs},\n    title = {Tumult {{Analytics}}},\n    month = dec,\n    year = 2022,\n    version = {latest},\n    url = {https://tmlt.dev}\n}\n```\n\n```\n@article{tumultanalyticswhitepaper,\n  title={Tumult {{Analytics}}: a robust, easy-to-use, scalable, and expressive framework for differential privacy},\n  author={Berghel, Skye and Bohannon, Philip and Desfontaines, Damien and Estes, Charles and Haney, Sam and Hartman, Luke and Hay, Michael and Machanavajjhala, Ashwin and Magerlein, Tom and Miklau, Gerome and Pai, Amritha and Sexton, William and Shrestha, Ruchit},\n  journal={arXiv preprint arXiv:2212.04133},\n  month = dec,\n  year={2022}\n}\n```\n\n## License\n\nTumult Analytics' source code is licensed under the Apache License, version 2.0\n(Apache-2.0). Tumult Analytics' documentation is licensed under Creative Commons\nAttribution-ShareAlike 4.0 International (CC-BY-SA-4.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopendp%2Ftumult-analytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopendp%2Ftumult-analytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopendp%2Ftumult-analytics/lists"}