Metadata-Version: 2.5
Name: ansible-jsonrpc-server
Version: 0.0.1
Summary: A JSON-RPC server for executing Ansible modules over stdin/stdout
Project-URL: Homepage, https://github.com/vjrasane/ansible-jsonrpc-server
Project-URL: Repository, https://github.com/vjrasane/ansible-jsonrpc-server
Author-email: Ville Rasanen <ville@datacrunch.io>
License: GPL-3.0-or-later
License-File: LICENSE
Keywords: ansible,automation,json-rpc
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.11
Requires-Dist: ansible-core==2.19.13
Requires-Dist: msgspec>=0.18
Requires-Dist: pebble>=5.0
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# ansible-jsonrpc-server

A JSON-RPC 2.0 server that owns all Ansible execution behind a line-framed stdio seam.
It runs Ansible modules and action plugins, gathers facts, and installs collections on
behalf of a thin client, so the client never imports Ansible itself.

The server speaks JSON-RPC 2.0 over stdin/stdout with `Content-Length` framing. It is the
Python runtime behind [`@sensible-ts/core`](https://github.com/vjrasane/ansible-nonesense),
which provisions it into an isolated, version-keyed virtualenv and drives it over that seam.

## Install

```sh
pip install ansible-jsonrpc-server
```

## Run

```sh
python -m ansible_jsonrpc_server
# or the console script
ansible-jsonrpc-server
```

The process reads JSON-RPC requests on stdin and writes responses on stdout; diagnostics
go to stderr.

## License

GPL-3.0-or-later. This package depends on and embeds the execution model of
`ansible-core` (GPL); keeping it isolated in its own process is what lets MIT-licensed
clients drive it without taking on that obligation.
