Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.7
Description
Implement Thin (lightweight) Client lib in Python programming language for Ignite Binary Client Protocol https://apacheignite.readme.io/docs/binary-client-protocol
Prototype:
https://github.com/skozlov-gridgain/apache-ignite-python-thin-client
Example - NodeJS client - IGNITE-7777
https://github.com/nobitlost/ignite/tree/master/modules/platforms/nodejs
-------------------------------------------
Package name (for use with setuptools/PyPI):
pyignite
Location of the lib in the repository:
.../modules/platforms/python
Python version:
3.4+ (tested on 3.4 and 3.6)
Ignite version:
2.7.
Architecture:
Syncronous (safe for use with threading/multiprocessing), object-oriented.
Documentation:
Sphinx/autodoc + readme.md
Test framework:
pytest, pytest-runner for setuptools pytest integration.
Usage examples included:
- cache management (creating, configuring, deleting),
- key-value operations,
- cache scan,
- basic SQL queries,
- simple and advanced work with Complex objects,
- fail-over connection.
Goal:
Create a full-featured Ignite thin client library:
- carefully implement, test, and document all the features of the binary protocol, that can be useful in Python programs,
- implement and document features like type IDs or serialization hints, that are mostly useless in Python, for interoperability's sake,
- skip features, that are not applicable to Python programs, like filter object in scan query.
Proposed scope of features:
- basic and SSL-wrapped TCP connection,
- authentication and authorization,
- failover mechanism,
- all datatypes,
- all client operations (except Binary-Type operations with type names).