1# Cocoon
2
3> [!WARNING]
4You should not use this PDS. You should not rely on this code as a reference for a PDS implementation. You should not trust this code. Using this PDS implementation may result in data loss, corruption, etc.
5
6Cocoon is a PDS implementation in Go. It is highly experimental, and is not ready for any production use.
7
8### Impmlemented Endpoints
9
10> [!NOTE]
11Just because something is implemented doesn't mean it is finisehd. Tons of these are returning bad errors, don't do validation properly, etc. I'll make a "second pass" checklist at some point to do all of that.
12
13#### Identity
14- [ ] com.atproto.identity.getRecommendedDidCredentials
15- [ ] com.atproto.identity.requestPlcOperationSignature
16- [x] com.atproto.identity.resolveHandle
17- [ ] com.atproto.identity.signPlcOperation
18- [ ] com.atproto.identity.submitPlcOperatioin
19- [x] com.atproto.identity.updateHandle
20
21#### Repo
22- [x] com.atproto.repo.applyWrites
23- [x] com.atproto.repo.createRecord
24- [x] com.atproto.repo.putRecord
25- [x] com.atproto.repo.deleteRecord
26- [x] com.atproto.repo.describeRepo
27- [x] com.atproto.repo.getRecord
28- [x] com.atproto.repo.importRepo (Works "okay". You still have to handle PLC operations on your own when migrating. Use with extreme caution.)
29- [x] com.atproto.repo.listRecords
30- [ ] com.atproto.repo.listMissingBlobs
31
32#### Server
33- [ ] com.atproto.server.activateAccount
34- [x] com.atproto.server.checkAccountStatus
35- [x] com.atproto.server.confirmEmail
36- [x] com.atproto.server.createAccount
37- [x] com.atproto.server.createInviteCode
38- [x] com.atproto.server.createInviteCodes
39- [ ] com.atproto.server.deactivateAccount
40- [ ] com.atproto.server.deleteAccount
41- [x] com.atproto.server.deleteSession
42- [x] com.atproto.server.describeServer
43- [ ] com.atproto.server.getAccountInviteCodes
44- [ ] com.atproto.server.getServiceAuth
45- ~[ ] com.atproto.server.listAppPasswords~ - not going to add app passwords
46- [x] com.atproto.server.refreshSession
47- [ ] com.atproto.server.requestAccountDelete
48- [x] com.atproto.server.requestEmailConfirmation
49- [x] com.atproto.server.requestEmailUpdate
50- [x] com.atproto.server.requestPasswordReset
51- [ ] com.atproto.server.reserveSigningKey
52- [x] com.atproto.server.resetPassword
53- ~[ ] com.atproto.server.revokeAppPassword~ - not going to add app passwords
54- [x] com.atproto.server.updateEmail
55
56#### Sync
57- [x] com.atproto.sync.getBlob
58- [x] com.atproto.sync.getBlocks
59- [x] com.atproto.sync.getLatestCommit
60- [x] com.atproto.sync.getRecord
61- [x] com.atproto.sync.getRepoStatus
62- [x] com.atproto.sync.getRepo
63- [x] com.atproto.sync.listBlobs
64- [x] com.atproto.sync.listRepos
65- ~[ ] com.atproto.sync.notifyOfUpdate~ - BGS doesn't even have this implemented lol
66- [x] com.atproto.sync.requestCrawl
67- [x] com.atproto.sync.subscribeRepos
68
69#### Other
70- [ ] com.atproto.label.queryLabels
71- [ ] com.atproto.moderation.createReport
72- [x] app.bsky.actor.getPreferences
73- [x] app.bsky.actor.putPreferences
74
75
76## License
77
78This project is licensed under MIT license. `server/static/pico.css` is also licensed under MIT license, available at [https://github.com/picocss/pico/](https://github.com/picocss/pico/).