ATProto/Bluesky Indexer, powered by SurrealDB and Jetstream, written in Rust.
The indexer attaches a websocket to a Jetstream endpoint and converts all received events to SurrealDB queries. Temporary outtages are handled by the cursor system, which allows the indexer to resume indexing from the last known event.
The database can then be used to run powerful queries on the network data or build advanced custom feeds. All skyfeed.xyz feeds are powered by this service.
- Install the latest stable rust compiler from rustup.rs.
- Install either onto your system or into a docker container a SurrealDB.
- Generate a secure password, which may be generated using
openssl rand -base64 32
orpwgen -s 32 1
. - Launch SurrealDB with the following flags:
surreal start --user root --pass <password here> --bind 127.0.0.1:8000 <dbtype>:<dbfile>
. - Clone the repository and run
cargo build --release
. - Launch the indexer with
./target/release/skyfeed-indexer [--help]
.