Skip to main content

osuclient.py

osuclient.py aims to allow the emulation of the communication between an osu client and server through code.

It is now also available on PyPi

Note

Please make sure this is only used on servers which you have explicit permission to do so. Using this without permission may result in restrictions and bans as it is likely to break the rules there.

Uses

Having full control over what requests are being sent to a server can be extremely beneficial. It helps with:

  • Debugging and testing rare scenarios
  • Stress testing/benchmarking specific scenarios/usages
  • Creating automated testing suites

Example

A basic client using osuclient.py would look something like this:

from osuclient.client import bancho
from osuclient.packets import constants
from osuclient.packets import rw
import asyncio

loop = asyncio.get_event_loop()

osu = bancho.OsuVersion(year= 2022, month= 6, day= 29)
hwid = bancho.HWIDInfo.generate_random()
client = bancho.BanchoClient.new(
    version= osu,
    hwid= hwid,
)

# Example custom packet handler.
@client.on_packet(constants.PacketID.SRV_NOTIFICATION)
async def on_notification(packet: rw.PacketContext) -> None:
    print(f"Notification> {packet.reader.read_str()}")

async def main():
    res = await client.connect(
        username= "Username",
        password= "Password",
        server= bancho.TargetServer.from_base_url("server.example"),
    )

    if not res:
        print("Failed to connect.")
        return
    
    print("Successfully connected.")
    print(f"{client.username} ({client.user_id})")
    print(f"Connected from {client.version.version} to {client.server.bancho}"
          f" (v{client.protocol_version})")
    
    await client.run_forever()


if __name__ == "__main__":
    loop.run_until_complete(main())

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osuclient-0.2.1.tar.gz (12.6 kB view details)

Uploaded Source

File details

Details for the file osuclient-0.2.1.tar.gz.

File metadata

  • Download URL: osuclient-0.2.1.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for osuclient-0.2.1.tar.gz
Algorithm Hash digest
SHA256 3a8d3100f3ff6e147518c9158878ff2c6522bf3799653beb3c833438ee87e44b
MD5 d37c13521f212874b6886da456c34ad1
BLAKE2b-256 9129a5845ba608a0ae09102dca99bdfd2527a594bb982f3fa943e6ea1e663c29

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 file

0.2.0

1 file

0.1.3

1 file

0.1.2

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page