perlsky is a Perl 5 implementation of an AT Protocol Personal Data Server.
13
fork

Configure Feed

Select the types of activity you want to include in your feed.

README update

alice 36985cad 4870f678

+8 -5
+8 -5
README.md
··· 1 1 # perlsky 2 2 3 + An AT Protocol Personal Data Server written in Perl 5 that has been extensively tested and aims for accuracy and parity with the official PDS. Nonetheless, **use it at your own risk**. 4 + 5 + ![perlsky-screenshot](assets/screenshot.png) 6 + 3 7 ## Why 4 8 5 9 Look, it started as a joke and then quickly got out of hand. 6 10 7 11 ## What 8 12 9 - An AT Protocol Personal Data Server written in Perl 5. It runs self-contained on SQLite and filesystem blob storage, loads the official `com.atproto.*` lexicons at runtime, and is meant to be pleasant to hack on if you like Perl. It has been extensively tested and aims for accuracy and parity with the official PDS. It is ready to use in Production for at least smaller servers. 10 13 11 14 ## Quick start 12 15 ··· 48 51 49 52 ### Differential validation 50 53 51 - `perlsky` can be tested side-by-side against the official `@atproto/pds` to verify matching behavior on accounts, repos, moderation, sync, firehose, and `importRepo`: 54 + `perlsky` can be tested side-by-side against the official `@atproto/pds` to verify matching behavior on accounts, repos, moderation, sync, firehose, and `importRepo`. This isn't bulletproof but it still helped to shake out a lot of subtle and not-so-subtle bugs: 52 55 53 56 ```sh 54 57 script/differential-validate ··· 63 66 64 67 The harness installs the reference runtime into `.tools/reference-runtime` with Node 20 via `fnm`. 65 68 66 - ### Browser smoke — [atproto-smoke](https://github.com/aliceisjustplaying/atproto-smoke) 69 + ### Browser smoke — [atproto-smoke](https://tangled.org/alice.mosphere.at/atproto-smoke) 67 70 68 - End-to-end smoke tests drive real `bsky.app` sessions against a running `perlsky` instance — posting, following, lists, notifications, settings, and more. The browser runtime is a standalone project, [atproto-smoke](https://github.com/aliceisjustplaying/atproto-smoke), designed to work with any AT Protocol PDS. `perlsky` provides a thin adapter script on top of it. 71 + End-to-end smoke tests drive real `bsky.app` sessions against a running `perlsky` instance — posting, following, lists, notifications, settings, and more. The browser runtime is a standalone project, [atproto-smoke](https://tangled.org/alice.mosphere.at/atproto-smoke), designed to work with any AT Protocol PDS. `perlsky` provides a thin adapter script on top of it. 69 72 70 73 ```sh 71 74 # clone atproto-smoke next to perlsky (one-time) 72 - git clone https://github.com/aliceisjustplaying/atproto-smoke.git ../atproto-smoke 75 + git clone https://tangled.org/alice.mosphere.at/atproto-smoke.git ../atproto-smoke 73 76 cd ../atproto-smoke && npm install && cd - 74 77 75 78 # bootstrap a reusable smoke account pair, then run
assets/screenshot.png

This is a binary file and will not be displayed.