Metadata-Version: 2.5
Name: meshcall
Version: 0.1.0
Summary: Async typed RPC for Python services: WebSocket direct or through the MeshCall Router
Project-URL: Homepage, https://github.com/t4wefan/meshcall
Project-URL: Changelog, https://github.com/t4wefan/meshcall/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/t4wefan/meshcall/issues
Author: t4wefan
License-Expression: MIT
License-File: LICENSE
Keywords: asyncio,pydantic,router,rpc,streaming,websocket
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Networking
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: loguru>=0.7.3
Requires-Dist: pydantic>=2.11
Requires-Dist: websockets>=16.1
Description-Content-Type: text/markdown

# meshcall-py

The Python runtime and code-generation package for the MeshCall monorepo.
Its import name is `meshcall`.

```bash
go -C ../meshcall-router build -o bin/meshcall-router ./cmd/meshcall-router
uv sync
uv run pytest -q
uv build
```

The monorepo-level runnable examples are in `../demo`. See the repository root
README for the complete Python/TypeScript workflow.

`WebSocketRouter` launches the standalone Go executable. It supports
`binary_path`, `auth_file`, readiness timeouts, `pid`, `is_running`,
`wait_closed()`, and async context management. A prebuilt binary can also be
selected with `MESHCALL_ROUTER_BINARY`; running it requires no Go compiler.

Pass `RouterCredentials(username=..., password=...)` or
`RouterCredentials(token=...)` as `auth` to a WebSocket client or Router server
driver. `RouterAuthClient` provides `whoami()`, `issue_token(scopes=..., ...)`,
and `revoke_token(...)`. Use `RouterScope(service=..., methods=[...])` to limit
a token, or `register_service=True` for temporary service instances.
See [Router authentication and management](../docs/router.md).
