A high-performance inter-process communication library designed to handle communication between multiple shards
Project description
Better Cluster
A high-performance inter-process communication library designed to handle communication between multiple bots/web applications
This library is made to handle mulltiple discord clients. If you want something simpler or have only one client, check out better-ipc
Installation
Stable version
For Linux
python3 -m pip install -U better-cluster
For Windows
py -m pip install -U better-cluster
Development version
For Linux
python3 -m pip install -U git+https://github.com/MiroslavRosenov/better-cluster
For Windows
py -m pip install -U git+https://github.com/MiroslavRosenov/better-cluster
Support
You can join the support server here
Examples
Example of a cluster
import asyncio
from discord.ext.cluster import Cluster
if __name__ == "__main__":
cluster = Cluster()
asyncio.run(cluster.start())
Example of a shard
import asyncio
import discord
from discord.ext.cluster import Shard, ClientPayload
from discord.ext import commands
class MyBot(commands.Bot):
def __init__(self) -> None:
intents = discord.Intents.all()
super().__init__(
command_prefix="$.",
intents=intents
)
self.shard = Shard(self, shard_id=1)
async def setup_hook(self) -> None:
await self.shard.connect()
@Shard.route(shard_id=1)
async def get_user_data(self, data: ClientPayload):
user = self.get_user(data.user_id)
return user._to_minimal_user_json()
if __name__ == '__main__':
bot = MyBot()
asyncio.run(bot.run(...))
Example of web client
from quart import Quart
from discord.ext import cluster
app = Quart(__name__)
ipc = cluster.Client()
@app.route('/')
async def main():
return await ipc.request("get_user_data", 1, user_id=383946213629624322)
if __name__ == '__main__':
app.run(port=8000, debug=True)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
better-cluster-1.0.0.tar.gz
(8.4 kB
view details)
Built Distribution
File details
Details for the file better-cluster-1.0.0.tar.gz
.
File metadata
- Download URL: better-cluster-1.0.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 670ddca9932ab2ced45e9ac19e3d6a5f25222715a7f83e29423f447b2f2ab44e |
|
MD5 | 867d3774f5c13ab712024b26402cde39 |
|
BLAKE2b-256 | 94785b5291641e2dd4c27eb6855e885c085daefb4e0337d28b652caa9a254b99 |
File details
Details for the file better_cluster-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: better_cluster-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04bdeae67100e8f94bfbf8363b141bb0b592372aaabbc290edb58d64660d74ef |
|
MD5 | 0fc080c6fd783f8cb6f680497b54eb14 |
|
BLAKE2b-256 | ca9e8743975025a4a9a7513a2e2c4b23a1fad9ac12fe7ef69461c2c492f36430 |