Booski is a Bluesky cross-poster for inferior services
(and a .NET library for ATProto and Bluesky)
⬇️ Get Booski | 📖 Read Docs | 💣 Submit Issue | 🦋 @booski.zio.blue
This Quick Start makes general assumptions about your environment, such as using Linux (x86_64). For a more comprehensive guide, see Docs.
cd ~/.local/bin
wget https://github.com/electricduck/booski/releases/download/v%2F0.x%2F0.5/booski-0.5-linux-x64.bin
chmod +x booski-0.5-linux-x64.bin
./booski-0.5-linux-x64.bin start --no-daemon
This repository currently houses two tangentially related projects (under ./src
): the Bluesky cross-poster (Booski
), and a general-purpose Bluesky library (Booski.Lib
).
For some background, Booski began life as a Bluesky library. Shortly into development, these plans folded as maitaining a library (especially for an ever-evolving unstable API) is a hard task at scale and another, more feature-complete, Bluesky library already exists. Instead of ditching weeks-worth of work that created the library (it's some of my best work, if I do say so myself) it was decided to utilize it for the new cross-poster, which itself became Booski, and the library became Booski.Lib.
Booski.Lib is still being developed, as its used in other various personal projects, but it will never be considered truely stable or feature-complete. However, you are welcome to use it in your own projects (sorry, there's no NuGet package) and submit tickets (tagging with Lib).
- .NET
- Version 9.0 (and above) required. Due to dotnet/runtime#72604, older versions are not supported.
- Linux, Windows, or macOS
- Bash
- Scripts under
tools/bash/
require this shell. There are currently no native scripts for Windows/PowerShell.
- Scripts under
git clone https://github.com/electricduck/booski.git
cd booski
git submodule sync
git submodule update --init --recursive
When updating in the future, don't forget to update submodules with:
git submodule update --recursive
Do not use git submodule foreach git pull
: this blindly updates all submodules to their latest version, not the commit this parent repo has checked out. This is important for some submodules that are checked out at specific tags/commits (such as ./lib/Telegram.Bot
).
(Todo)
(Todo)
(Todo)