Metadata-Version: 2.4
Name: pyvider-rpcplugin
Version: 0.0.1100
Summary: Pyvider RPC Plugin
Author-email: Tim Perkins <code@tim.life>
License-Expression: Apache-2.0
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: attrs>=25.1.0
Requires-Dist: cryptography>=44.0.1
Requires-Dist: google>=3.0.0
Requires-Dist: grpcio>=1.76.0
Requires-Dist: grpcio-health-checking>=1.76.0
Requires-Dist: protobuf>=5.29.3
Requires-Dist: provide-foundation
Requires-Dist: structlog>=25.1.0
Provides-Extra: test
Requires-Dist: grpc-stubs>=1.53.0.6; extra == "test"
Requires-Dist: grpcio-tools>=1.73.0; extra == "test"
Requires-Dist: types-grpcio>=1.0.0.20250603; extra == "test"
Requires-Dist: types-protobuf>=6.30.2.20250516; extra == "test"
Dynamic: license-file

<div align="center">

# 🐍🔌 `pyvider.rpcplugin`

**High-performance, type-safe RPC plugin framework for Python.**

Modern gRPC-based plugin architecture with async support, mTLS security, and comprehensive transport options.

[![Awesome: uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
[![PyPI Version](https://img.shields.io/pypi/v/pyvider-rpcplugin?style=flat-square)](https://pypi.org/project/pyvider-rpcplugin/)
[![Python Versions](https://img.shields.io/pypi/pyversions/pyvider-rpcplugin?style=flat-square)](https://pypi.org/project/pyvider-rpcplugin/)
[![Downloads](https://static.pepy.tech/badge/pyvider-rpcplugin/month)](https://pepy.tech/project/pyvider-rpcplugin)

[![CI](https://github.com/provide-io/pyvider-rpcplugin/actions/workflows/ci.yml/badge.svg)](https://github.com/provide-io/pyvider-rpcplugin/actions/workflows/ci.yml)
[![Coverage](https://codecov.io/gh/provide-io/pyvider-rpcplugin/branch/main/graph/badge.svg)](https://codecov.io/gh/provide-io/pyvider-rpcplugin)
[![Type Checked](https://img.shields.io/badge/type--checked-mypy-blue?style=flat-square)](https://mypy.readthedocs.io/)
[![Code style: ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square)](https://github.com/astral-sh/ruff)

[![License: Apache 2.0](https://img.shields.io/badge/License-Apache-blue.svg?style=flat-square)](https://opensource.org/license/apache-2-0)

---

**Build lightning-fast, secure RPC plugins!** `pyvider.rpcplugin` provides a complete framework for creating high-performance RPC-based plugins with built-in security, async support, and production-ready patterns. Perfect for microservices, plugin architectures, and inter-process communication.

</div>

## 📖 Full Documentation

For a comprehensive guide to installing, using, and understanding `pyvider.rpcplugin`, including tutorials, advanced topics, and API references, please see the:

➡️ **[Documentation Home](./docs/index.md)**

Complete documentation with tutorials, examples, API reference, and deployment guides.

## Overview

`pyvider.rpcplugin` is a Python framework designed to simplify the creation of robust, secure, and high-performance RPC-based plugin systems. It leverages gRPC for efficient communication and integrates with Foundation for:

-   **Async Operations**: Native `asyncio` integration.
-   **Secure Communication**: mTLS with Foundation's certificate management utilities.
-   **Flexible Transports**: Unix Domain Sockets (for local IPC) and TCP sockets (for network IPC).
-   **Standardized Handshake**: Secure plugin authentication using magic cookies and protocol/transport negotiation.
-   **Developer-Friendly Features**: Type safety, factory functions for common patterns, and Foundation's structured logging.

## Quick Installation

```bash
# With uv (recommended)
uv add pyvider-rpcplugin

# With pip
pip install pyvider-rpcplugin
```

Dive into the **[Documentation](./docs/index.md)** to get started!

## 🤝 Contributing

We welcome contributions! Please see [Contributing to Pyvider RPCPlugin](./docs/development/contributing.md) for details.

## 📜 License

This project is licensed under the **Apache 2.0 License**. See the [LICENSE](LICENSE) file for details.
