Skip to content

threddyrex/rustproto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

170 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rustproto - software for ATProto and Bluesky

This is a Rust port of dnproto, which is an atproto PDS.

My main account runs on rustproto -> threddyrex.org.

For info on how to implement a PDS from scratch, check out Ten Steps to a PDS.

 

Source code

CAR repo encoding and decoding:

MST data structure:

PDS implementation:

Listening to a firehose:

General Bluesky WS calls:

 

Using the command line tool (Windows)

The following steps show how to use the command line tool on Windows in PowerShell. Requires Rust.

To get started, change into the root directory and build.

cargo build

Next, change into the scripts directory, and list the files:

cd powershell
ls

Most of the files in this directory represent one "command" of the tool. Here are the available commands:

# resolve actor info and retrieve did, did doc
.\ResolveActorInfo.ps1 -actor <handle or did>

# download the user's repo and store in the data directory
.\GetRepo.ps1 -actor <handle or did>

# print stats for the downloaded repo
.\PrintRepoStats.ps1 -actor <handle or did>

# print records for the downloaded repo
.\PrintRepoRecords.ps1 -actor <handle or did>

# walk the MST for the downloaded repo
.\WalkMst.ps1 -actor <handle or did>

# start listening to a firehose
.\StartFirehoseConsumer.ps1

 

The data directory

When you are using the command line tool, it uses a local directory to store cached data. By default, it uses the "data" directory in the repo. You can change this in the _Defaults.ps1 file.

 

Linux Support

Is Linux supported? Yes! I run my rustproto PDS on Linux.

About

atproto PDS and debugging tools

Resources

License

Stars

Watchers

Forks

Contributors

Languages