Metadata-Version: 2.4
Name: obby-client
Version: 0.3.0
Summary: The Obby IRCv3 client engine
Home-Page: https://obbyworld.github.io/obby-client
License: GPL-3.0-or-later
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://obbyworld.github.io/obby-client
Project-URL: Repository, https://github.com/obbyworld/obby-client

# obby-client

**Write the interface. This handles IRC.**

An IRCv3 engine with the client model built in. It parses the protocol, negotiates capabilities,
authenticates, and keeps channels, members, conversations and their messages. It does no I/O: you
feed it bytes and the time, it tells you what happened and what to send. The engine is Rust, so the
protocol work does not run in Python.

```sh
pip install obby-client
```

```python
from obby_client import Client

client = Client("mynick")
client.handle_connected()

while (out := client.poll_transmit()) is not None:
    sock.sendall(out)

client.handle_bytes(sock.recv(4096))
for event in client.poll_events():
    print(event)

client.join("#obby")
client.tick(monotonic_ms, unix_ms)
```

## Build from source

```sh
maturin build --release --manifest-path bindings/obby-python/Cargo.toml
```

