Metadata-Version: 2.4
Name: pyvider-rpcplugin
Version: 0.3.31.post1
Summary: Pyvider RPC Plugin
Author-email: Tim Perkins <code@tim.life>
Maintainer-email: "provide.io" <code@provide.io>
License-Expression: Apache-2.0
Project-URL: Homepage, https://foundry.provide.io/pyvider-rpcplugin/
Project-URL: Documentation, https://foundry.provide.io/pyvider-rpcplugin/
Project-URL: Repository, https://foundry.provide.io/pyvider-rpcplugin/repo
Project-URL: Issues, https://foundry.provide.io/pyvider-rpcplugin/issues
Keywords: pyvider,rpc,grpc,plugin,terraform,provider
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: attrs>=25.4.0
Requires-Dist: cryptography>=45.0.7
Requires-Dist: google>=3.0.0
Requires-Dist: grpcio>=1.78.0
Requires-Dist: grpcio-health-checking>=1.78.0
Requires-Dist: protobuf>=5.29.3
Requires-Dist: provide-foundation>=0.3.29
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"
Provides-Extra: all
Requires-Dist: pyvider-rpcplugin[test]; extra == "all"
Dynamic: license-file

# 🔌📞 Pyvider RPC Plugin

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![uv](https://img.shields.io/badge/uv-package_manager-FF6B35.svg)](https://github.com/astral-sh/uv)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![CI](https://github.com/provide-io/pyvider-rpcplugin/actions/workflows/ci.yml/badge.svg)](https://github.com/provide-io/pyvider-rpcplugin/actions)

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

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

---

**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-focused patterns. Perfect for microservices, plugin architectures, and inter-process communication.

</div>

## ✨ Key Features

- 🔌 **gRPC Framework** - High-performance plugin framework with strong typing
- ⚡ **Async-First** - Native async APIs with secure mTLS support
- 🧱 **Foundation Integration** - Seamless integration with provide.foundation utilities

## Quick Start

> **Note**: pyvider-rpcplugin is in pre-release (v0.x.x). APIs and features may change before 1.0 release.

1. Install: `uv add pyvider-rpcplugin`
2. Follow the [Quick Start guide](https://github.com/provide-io/pyvider-rpcplugin/blob/main/docs/getting-started/quick-start.md).
3. Build your first plugin via [docs/getting-started/first-plugin.md](https://github.com/provide-io/pyvider-rpcplugin/blob/main/docs/getting-started/first-plugin.md).

## Documentation
- [Documentation index](https://github.com/provide-io/pyvider-rpcplugin/blob/main/docs/index.md)
- [Getting started](https://github.com/provide-io/pyvider-rpcplugin/blob/main/docs/getting-started/index.md)
- [Guide](https://github.com/provide-io/pyvider-rpcplugin/blob/main/docs/guide/index.md)

## Development

### Quick Start

```bash
# Set up environment
uv sync

# Run common tasks
we run test       # Run tests
we run lint       # Check code
we run format     # Format code
we tasks          # See all available commands
```

See [CLAUDE.md](https://github.com/provide-io/pyvider-rpcplugin/blob/main/CLAUDE.md) for detailed development instructions and architecture information.

## 🤝 Contributing

We welcome contributions! Please see [Contributing to Pyvider RPCPlugin](https://github.com/provide-io/pyvider-rpcplugin/blob/main/docs/development/contributing-guide.md) for details.

## 📜 License

This project is licensed under the **Apache 2.0 License**. See the [LICENSE](https://github.com/provide-io/pyvider-rpcplugin/blob/main/LICENSE) file for details.

## 📖 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](https://github.com/provide-io/pyvider-rpcplugin/blob/main/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
```

Dive into the **[Documentation](https://github.com/provide-io/pyvider-rpcplugin/blob/main/docs/index.md)** to get started!

Copyright (c) provide.io LLC.
