Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nerdguyahmad/luster

Python library for Revolt.chat API.
https://github.com/nerdguyahmad/luster

api asyncio library python python3 revolt wrapper

Last synced: 3 months ago
JSON representation

Python library for Revolt.chat API.

Awesome Lists containing this project

README

        

# luster
Python library for Revolt.chat API.

**[Documentation](https://luster.readthedocs.io) • [Revolt Server](https://app.revolt.chat/invite/SfzyrsrA) • [Source Code](https://github.com/nerdguyahmad/luster)**

> :warning: **Acknowledgement**
>
> This library is still under active development and incomplete.
>
> Join our [Revolt Server](https://app.revolt.chat/invite/SfzyrsrA) for staying tuned with updates.

## Features
- Modern and easy to use interface
- Fully typed and compatible with most type checkers
- Supports operations with both bots and users API
- Provides maximum control over the low level API
- Type definitions for Revolt API

## Installation
You can install this library using the Python's traditional package manager, `pip`.
```sh
$ pip install luster
```
Note that **Python 3.8 or higher** is required.

The only required dependency for this library is `aiohttp`. There are certain dependencies
that you can install in order to enhance the speed of the library.

- `msgpack` (Faster websocket packets parsing)
- `ujson` (Faster JSON parsing)
- `aiohttp[speed]` (Speed ups for `aiohttp`)

These dependencies can be installed by:
```sh
$ pip install luster[speed]
```

## Basic Usage
> :information_source: Type annotations are not required.

```py
import luster

client = luster.Client(token="...")

@client.listen(luster.WebsocketEvent.AUTHENTICATED)
async def handle_authenticated(event: luster.events.Authenticated):
print("Client has connected!")

client.launch()
```

> Basic operations such as sending messages are not yet supported. You
> can use the low level API such as `HTTPHandler` and `WebsocketHandler`
> to manually interact with Revolt API.

## Contributing
This library is still in it's alpha (0.x) phase and is undergoing active development to
provide 100% coverage of Revolt API. Any kind of contribution is welcomed.
See [Contribution guidelines](https://luster.readthedocs.io/contributing.html) for
more information.