Skip to content

myConsciousness/atproto.dart

bluesky

AT Protocol and Bluesky Social Things for Dart/Flutter 🦋


GitHub Sponsor GitHub Sponsor melos Reference

Test/Analyzer codecov Issues Pull Requests Stars Contributors Code size Last Commits License Contributor Covenant


Welcome to atproto.dart 🦋

This project will maximize your development productivity about AT Protocol and Bluesky things.

Give a ⭐ on GitHub repository and follow shinyakato.dev on Bluesky!

1. Motivation 💪

AT Protocol and Bluesky are awesome.

This wonderful platform needs a standard and highly integrated SDK. atproto.dart provides the best development experience in such matters for Dart/Flutter devs.

2. Packages & Tools ⚒️

2.1. Dart Packages

Package pub.dev Docs
at_identifier: core library for the syntax in the AT Protocol standard pub package README
nsid: core library for parsing NSIDs in the AT Protocol standard pub package README
at_uri: core library for parsing AT URI in the AT Protocol standard pub package README
xrpc: core library for XRPC communication, wrapped HTTP client pub package README
multiformats: core library for parsing IPFS-related things pub package README
atproto_core: core library for clients and tools pub package README
lexicon: core library for parsing Lexicon in the AT Protocol standard pub package README
did_plc: client library for plc.directory endpoints pub package README
atproto: client library for com.atproto.* endpoints pub package README / GUIDE
bluesky: client library for com.atproto.*, app.bsky.* and chat.bsky.* endpoints pub package README / GUIDE
bluesky_text: library for parsing Bluesky text (mentions, links, tags, etc) pub package README / GUIDE

2.2. CLI Tool

Tool Install Docs
bluesky_cli: command line tool for app.bsky.* endpoints dart pub global activate bluesky_cli README

2.3. GitHub Actions Workflow

Workflow Marketplace Docs
bluesky_post: workflow for scheduled post to Bluesky from GitHub Actions bluesky-post README

3. Developer Quickstart 🏎️

This project consists of several packages and is managed using Melos. The Melos commands makes it easy to set up this project.

3.1. Clone Project

git clone https://github.com/myConsciousness/atproto.dart.git

3.2. Install Melos

First you need to clone this project and install Melos with following command.

dart pub global activate melos

3.3. Setup Project

Then you just execute setup command as follows. The setup command easily solves all the initial setup when cloning this huge project.

melos setup

3.4. Useful Commands

Command Description
melos setup Set up the atproto.dart project when cloned. Run dart pub get and dart run build_runner build in all Dart packages.
melos get Run dart pub get command in all packages.
melos analyze Run dart analyze in all packages.
melos fmt Run dart format and dart run import_sorter:main in all packages.
melos build Run dart run build_runner build in all packages.
melos test Run all Dart tests in this project.

4. Who is using atproto.dart? 👀

The following projects/services are using atproto.dart packages:

You can see more at showcase, special thanks!

5. Contribution 🏆

If you would like to contribute to atproto.dart, please create an issue or create a Pull Request.

There are many ways to contribute to the OSS. For example, the following subjects can be considered:

  • There are request parameters or response fields that are not implemented.
  • Documentation is outdated or incomplete.
  • Have a better way or idea to achieve the functionality.
  • etc...

You can see more details from resources below:

Or you can create a discussion if you like.

Feel free to join this development, diverse opinions make software better!

6. Contributors ✨

Thanks goes to these wonderful people (emoji key):

Shinya Kato / 加藤 真也
Shinya Kato / 加藤 真也

💻 🖋 🐛 📖 🔣 🎨 💡 🚇 🚧 📆 📣 👀 🛡️ 🔧 ⚠️
tacsotai
tacsotai

🤔
Luke Pighetti
Luke Pighetti

🤔 🐛
Alice
Alice

🤔 📦
videah
videah

🤔 🐛 📦 💬 📓
redsolver
redsolver

🤔 🐛 💬
Shy Ruparel
Shy Ruparel

🤔
Julien
Julien "uj" Abadji

💻
maughtchiner
maughtchiner

🤔 🖋
igz0
igz0

🤔 🖋
Gildásio Filho
Gildásio Filho

💻 🖋 ⚠️ 🤔
YU-KI Hidea
YU-KI Hidea

💻 🖋 📦
Covalent
Covalent

🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

7. Support ❤️

The simplest way to show us your support is by giving the project a star at GitHub and Pub.dev.

You can also support this project by becoming a sponsor on GitHub:

8. License 🔑

The source code provided in this monorepo is provided under the BSD-3 license.

Copyright 2023 Shinya Kato. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided the conditions.

Note
License notices in the source are strictly validated based on .github/header-checker-lint.yml. Please check header-checker-lint.yml for the permitted standards.

9. More Information 🧐

All resources in atproto.dart is maintained by Shinya Kato (@myConsciousness).