BlueskyEx

This is an Elixir client for the Bluesky / AT protocol.

Right now it's in a pretty barebones proof-of-concept state. Contributions to make it more full-featured are more than welcome :)

installation

Installation

make build

usage

Usage

Here's an example CLI session:

make console
username = "username"
password = "password"
pds = "https://bsky.social"

creds = %BlueskyEx.Client.Credentials{
  username: username,
  password: password
}
session = BlueskyEx.Client.Session.create(creds, pds)

# Fetch 15 skeets from the timeline
popular = BlueskyEx.Client.RecordManager.get_timeline(session, limit: 15)

# Make a skeet with the text content "skeet"
post = BlueskyEx.Client.RecordManager.create_post(session, text: "skeet")

api-reference

API reference

See Hexdocs.

contributing

Contributing

formatting

Formatting

This project uses credo and formatter for style consistency. Please run

mix format

and

mix credo -a --strict

before committing changes.

type-checking

Type checking

Typespecs are validated through dialyzer.

mix dialyzer

helpers

Helpers

As a shortcut, you can run

make lint

to run all three of the above commands before authoring a commit.

guidelines

Guidelines

Testing

All public functions "should" be tested exhaustively, but coverage is spotty right now -- contributions are welcome.

You can run the test suite with

make test-unit

Documentation

All public modules and their functions should be documented with the appropriate typespecs.

This library uses ExDoc conventions for documentation. You can run

make docs

to build the docs and open them in your local environment.

license

License

MIT