Still down the fiat mine, but the old libraries are getting time when I can.
Shipping innis/nostr-blossom today: Blossom, blob storage on Nostr, in PHP.
The counterpart to the TypeScript client from June, but not a port of it. That library is a Blossom client, this is the layer a server is built from. The BUD use cases, the kind 24242 auth validation, the policies that decide who may store what. BUDs 01, 02, 04, 05, 06, 08, 09, 11 and 12.
Spec, not server. No filesystem, no database, no HTTP. Storage, indexing and inspection are injected ports a host wires to its own runtime, with one such host coming soon. Where the spec left room I took the strict side. Judgement calls are recorded as ADRs in the repo, so if you would have called it differently, there is something specific to argue with.
Built on innis/nostr-core. PHPStan level 9.
Many thanks to hzrd149 (nprofile…9x4s) for this fine protocol.
composer require innis/nostr-blossom
https://github.com/johninnis/nostr-blossom
MIT.
#nostr #php #opensource #nostrdev