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)
Metadata
Release files for better-cluster 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| better-cluster-1.0.0.tar.gz | 8.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| better_cluster-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / better-cluster-1.0.0.tar.gz
| Download URL | better-cluster-1.0.0.tar.gz |
|---|---|
| Size | 8.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
670ddca9932ab2ced45e9ac19e3d6a5f25222715a7f83e29423f447b2f2ab44e
|
|
BLAKE2b-256 checksum How to use checksums |
94785b5291641e2dd4c27eb6855e885c085daefb4e0337d28b652caa9a254b99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.6
|
Release files / better_cluster-1.0.0-py3-none-any.whl
| Download URL | better_cluster-1.0.0-py3-none-any.whl |
|---|---|
| Size | 10.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
04bdeae67100e8f94bfbf8363b141bb0b592372aaabbc290edb58d64660d74ef
|
|
BLAKE2b-256 checksum How to use checksums |
ca9e8743975025a4a9a7513a2e2c4b23a1fad9ac12fe7ef69461c2c492f36430
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|