{"id":18715851,"url":"https://github.com/davidbuchanan314/millipds","last_synced_at":"2025-04-05T22:04:37.093Z","repository":{"id":224523194,"uuid":"763170970","full_name":"DavidBuchanan314/millipds","owner":"DavidBuchanan314","description":"A from-scratch atproto PDS implementation in Python","archived":false,"fork":false,"pushed_at":"2025-02-17T17:21:19.000Z","size":267,"stargazers_count":117,"open_issues_count":36,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-29T21:03:16.690Z","etag":null,"topics":["atproto","atproto-pds","atprotocol","merkle-search-tree","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/DavidBuchanan314.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}},"created_at":"2024-02-25T18:31:08.000Z","updated_at":"2025-03-14T20:04:42.000Z","dependencies_parsed_at":"2024-11-07T13:10:39.342Z","dependency_job_id":"657a921f-10a9-4629-a961-bde37e3e22f6","html_url":"https://github.com/DavidBuchanan314/millipds","commit_stats":null,"previous_names":["davidbuchanan314/millipds"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidBuchanan314%2Fmillipds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidBuchanan314%2Fmillipds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidBuchanan314%2Fmillipds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidBuchanan314%2Fmillipds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DavidBuchanan314","download_url":"https://codeload.github.com/DavidBuchanan314/millipds/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406085,"owners_count":20933803,"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":["atproto","atproto-pds","atprotocol","merkle-search-tree","python","python3"],"created_at":"2024-11-07T13:10:27.370Z","updated_at":"2025-04-05T22:04:37.074Z","avatar_url":"https://github.com/DavidBuchanan314.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# millipds [WIP]\nA from-scratch atproto PDS implementation that dreams of becoming \"production grade\" software (it isn't, yet).\n\nmillipds is a successor to [DavidBuchanan314/picopds](https://github.com/davidBuchanan314/picopds), which is even more minimalist, but hacky and no longer maintained.\n\nIt works to the extent that it can \"federate\" with the rest of the atproto network, but there are a lot of rough edges still. I wouldn't currently recommend using it for anything other than testing or experimentation (although, due to the nature of atproto, if you don't like it you can seamlessly migrate your whole account elsewhere). Until millipds reaches v1.0.0, I reserve the right to make breaking DB schema changes without providing a migration path.\n\nIt depends on [DavidBuchanan314/atmst](https://github.com/DavidBuchanan314/atmst) for implementing logic related to the Merkle Search Tree data structure, and [DavidBuchanan314/dag-cbrrr](https://github.com/DavidBuchanan314/dag-cbrrr) for DAG-CBOR parsing and serialisation.\n\nSee https://github.com/DavidBuchanan314/millipds/issues/12 for an incomplete list of differences between this implementation and the [reference implementation](https://github.com/bluesky-social/atproto/tree/main/packages/pds).\n\n### Local dev install:\n\n```sh\ngit clone https://github.com/DavidBuchanan314/millipds\ncd millipds\npython3 -m pip install -e .\n```\n\n### Dockerised dev install, via podman:\n\n(note: I have no idea what I'm doing with this!)\n\n```sh\npodman build -f millipds_dev.dockerfile -t millipds_dev\npodman run --rm -it -p 8123:8123 millipds_dev\n```\n\n### Production deployment on Ubuntu (and similar systems) [WIP]\n\nSee [./docs/DEPLOY.md](./docs/DEPLOY.md)\n\n\n### Running the tests locally\n\n```sh\npython3 -m pip install -e .[test]  # install the testing dependencies (only needed once, unless new deps are added)\npython3 -m pytest .  # run the tests\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidbuchanan314%2Fmillipds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidbuchanan314%2Fmillipds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidbuchanan314%2Fmillipds/lists"}