# jsonrpclib-pelix

> JSON-RPC 2.0 client library for Python (this version is a fork of jsonrpclib by Josh Marshall, made to be also usable with Pelix/iPOPO remote services)

**Wikidata**: [Q126736762](https://www.wikidata.org/wiki/Q126736762)  
**Source**: https://4ort.xyz/entity/jsonrpclib-pelix

## Summary
jsonrpclib-pelix is an implementation of the JSON-RPC 2.0 protocol designed as a client library for Python. It is a fork of the original `jsonrpclib` created by Josh Marshall, modified specifically to support Pelix/iPOPO remote services. The library is free software distributed under the Apache Software License 2.0.

## Key Facts
- **Entity Type:** Software library / Free software
- **Primary Function:** Implementation of the JSON-RPC 2.0 specification for Python.
- **Origin:** A fork of `JSONRPClib` (by Josh Marshall).
- **License:** Apache Software License 2.0.
- **Compatibility:** Designed for use with Pelix/iPOPO remote services.
- **Latest Recorded Version:** 0.3.2 (released October 26, 2018).
- **Source Repository:** https://github.com/tcalmant/jsonrpclib
- **Package Identifiers:** PyPI project `jsonrpclib-pelix`; FreeBSD port `devel/py-jsonrpclib-pelix`.
- **Operating Systems:** BSD, NetBSD, Gentoo (via `dev-python/jsonrpclib`).

## FAQs
### Q: What is the difference between jsonrpclib-pelix and the original jsonrpclib?
A: jsonrpclib-pelix is a fork of Josh Marshall's original `jsonrpclib`. While the original provides general JSON-RPC support, this version was specifically modified to be compatible with Pelix/iPOPO remote services.

### Q: What license is jsonrpclib-pelix released under?
A: The library is released under the Apache Software License 2.0, making it free software that allows users to run, study, change, and distribute it.

### Q: Where can I find the source code for jsonrpclib-pelix?
A: The source code is hosted on GitHub at `https://github.com/tcalmant/jsonrpclib`. It is also available for installation via PyPI and various BSD package managers.

## Why It Matters
jsonrpclib-pelix plays a specific role in the Python ecosystem by bridging the standard JSON-RPC 2.0 protocol with the Pelix/iPOPO service component runtime. While standard JSON-RPC libraries focus solely on the protocol, this fork addresses the integration needs of developers building modular applications using the iPOPO framework (a service-oriented component model for Python). By maintaining compatibility with this framework, the library enables the development of complex, remote-service-oriented architectures without requiring developers to write custom boilerplate code for RPC handling. Its availability across multiple package managers (FreeBSD, NetBSD, Guix, PyPI) and its sustained release history spanning from 2013 to 2018 indicate its utility as a stable tool for specific service-oriented architectures.

## Notable For
- **Pelix/iPOPO Integration:** Uniquely modified to support Pelix/iPOPO remote services, distinguishing it from the base `jsonrpclib`.
- **Broad System Availability:** Unlike many Python libraries limited to PyPI, it has specific ports for FreeBSD, NetBSD, and Gentoo.
- **Long-term Maintenance:** Maintained with stable releases spanning over five years, from version 0.1.6 in 2013 to version 0.3.2 in 2018.
- **Standard Adherence:** Implements the JSON-RPC 2.0 specification.

## Body

### Development and Origin
jsonrpclib-pelix was created to fulfill a specific niche in the Python software ecosystem. It is derived from `JSONRPClib`, a library originally authored by Josh Marshall. The "pelix" variant was forked to ensure the library could be utilized effectively within Pelix/iPOPO remote services environments. It is classified as free software, allowing broad usage and modification under its open-source license.

### Version History
The library has seen multiple stable releases, documenting a clear development trajectory from 2013 to 2018. Key releases include:

- **0.1.6:** Released October 14, 2013.
- **0.2.x Series:** Multiple updates throughout 2015 and 2016, including versions 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, and 0.2.9.
- **0.3.x Series:** Includes version 0.3.0 (April 27, 2017), 0.3.1 (June 27, 2017), and the currently listed stable version **0.3.2** (October 26, 2018).

### Distribution and Installation
The library is widely accessible through various software repositories, highlighting its cross-platform utility:
- **Python Package Index (PyPI):** Available as `jsonrpclib-pelix`.
- **BSD Systems:** Available in FreeBSD via `devel/py-jsonrpclib-pelix` and NetBSD via `textproc/py-jsonrpclib-pelix`.
- **Linux Distributions:** Available in Gentoo as `dev-python/jsonrpclib` and via Guix with the variable name `python-jsonrpclib-pelix`.

### Technical Specifications
- **Programming Language:** Python.
- **Protocol:** JSON-RPC 2.0.
- **Repository Host:** GitHub (user tcalmant).
- **Dependencies:** Runs on BSD operating systems and is utilized by software such as SickChill.

## References

1. Python Package Index
2. [Release 0.1.6. 2013](https://github.com/tcalmant/jsonrpclib/releases/tag/0.1.6)
3. [Release 0.2.4. 2015](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.2.4)
4. [Release 0.2.5. 2015](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.2.5)
5. [Release 0.2.6. 2015](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.2.6)
6. [Release 0.2.7. 2016](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.2.7)
7. [Release 0.2.8. 2016](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.2.8)
8. [Release 0.2.9. 2016](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.2.9)
9. [Release 0.3.0. 2017](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.3.0)
10. [Release 0.3.1. 2017](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.3.1)
11. [Release 0.3.2. 2018](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.3.2)
12. [Release 0.4.0. 2019](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.4.0)
13. [Release 0.4.1. 2020](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.4.1)
14. [Release 0.4.2. 2020](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.4.2)
15. [Release 0.4.3. 2021](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.4.3)
16. [Release 0.4.3.1. 2021](https://github.com/tcalmant/jsonrpclib/releases/tag/0.4.3.1)
17. [Release 0.4.3.2. 2022](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.4.3.2)
18. [Release 0.4.3.3. 2024](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.4.3.3)
19. [Release 0.4.3.4. 2025](https://github.com/tcalmant/jsonrpclib/releases/tag/v0.4.3.4)
20. [Release 1.0.0. 2025](https://github.com/tcalmant/jsonrpclib/releases/tag/v1.0.0)