.__ .___
_____ | | _____ ____ ____ __| _/
\__ \ | | / \ / _ \ / \ / __ |
/ __ \| |_| Y Y ( <_> ) | \/ /_/ |
(____ /____/__|_| /\____/|___| /\____ |
\/ \/ \/ \/
# what is this
Any Large Media ON Demand - a blossom media server for nostr, written in rust.
# what it does
- 🌸 blossom
- BUD-01 02 03 04 06 07 09 10 11 12
- 🌸 upload
PUT /upload, resumablePATCH /upload,PUT /mirrorfrom other servers (follows HLS playlists)- 🌸 download
GET /<sha256>with any file extension, range requests, ETag and immutable caching- 🌸 delete
DELETE /<sha256>with a single-use BUD-11 authorization from an allowlisted npub- 🌸 list
GET /list/<pubkey>with cursor pagination, for allowlisted npubs- 🌸 filter
GET /filter: a compact filter (binary fuse or bloom) of every stored hash- 🌸 storage
- local filesystem or an optional S3-compatible bucket; no database, the index lives in memory
- 🌸 retention
- built for temporary blobs: optional max age, size and count limits; oldest go first (FIFO)
- 🌸 access
- anyone with a nostr key by default; or allowlisted npubs, their web of trust, DVMs, or off
- 🌸 upstream
- optional fallback to other blossom servers (proxy, redirect, redirect and cache);
?xs=/?as=hints are off by default - 🌸 payments
- optional cashu ecash per MiB (BUD-07), off by default
- 🌸 reports
- optional BUD-09 reports that quarantine or delete a blob, off by default
blobs may disappear - keep your own copy.
good luck! 🎉