[](https://github.com/kiarina/falkordb-py)
[](https://github.com/kiarina/falkordb-py/releases/latest)
[](https://badge.fury.io/py/kiarina-falkordb)
# kiarina-falkordb
> **ℹ️ This is a fork of [falkordb-py](https://github.com/FalkorDB/falkordb-py) with additional fixes.**
>
> **Original work by the [FalkorDB team](https://github.com/FalkorDB/falkordb-py).**
>
> This fork includes bug fixes and improvements that are pending upstream merge.
[](https://app.falkordb.cloud)
FalkorDB Python client
see [docs](http://falkordb-py.readthedocs.io/)
## Installation
```sh
pip install kiarina-falkordb
```
## Differences from upstream
- ✅ **redis-py 7.0.0 support** - Compatible with redis-py >= 7.0.0
- ✅ **Python 3.9+ required** - Dropped Python 3.8 support for redis-py 7.x compatibility
- ✅ Fixed async `from_url()` to correctly use host/port from URL
- ✅ All original functionality preserved
- 🔄 Actively maintained with upstream compatibility
## Usage
### Run FalkorDB instance
Docker:
```sh
docker run --rm -p 6379:6379 falkordb/falkordb
```
Or use [FalkorDB Cloud](https://app.falkordb.cloud)
### Synchronous Example
```python
from falkordb import FalkorDB
# Connect to FalkorDB
db = FalkorDB(host='localhost', port=6379)
# Select the social graph
g = db.select_graph('social')
# Create 100 nodes and return a handful
nodes = g.query('UNWIND range(0, 100) AS i CREATE (n {v:1}) RETURN n LIMIT 10').result_set
for n in nodes:
print(n)
# Read-only query the graph for the first 10 nodes
nodes = g.ro_query('MATCH (n) RETURN n LIMIT 10').result_set
# Copy the Graph
copy_graph = g.copy('social_copy')
# Delete the Graph
g.delete()
```
### Asynchronous Example
```python
import asyncio
from falkordb.asyncio import FalkorDB
from redis.asyncio import BlockingConnectionPool
async def main():
# Connect to FalkorDB
pool = BlockingConnectionPool(max_connections=16, timeout=None, decode_responses=True)
db = FalkorDB(connection_pool=pool)
# Select the social graph
g = db.select_graph('social')
# Execute query asynchronously
result = await g.query('UNWIND range(0, 100) AS i CREATE (n {v:1}) RETURN n LIMIT 10')
# Process results
for n in result.result_set:
print(n)
# Run multiple queries concurrently
tasks = [
g.query('MATCH (n) WHERE n.v = 1 RETURN count(n) AS count'),
g.query('CREATE (p:Person {name: "Alice"}) RETURN p'),
g.query('CREATE (p:Person {name: "Bob"}) RETURN p')
]
results = await asyncio.gather(*tasks)
# Process concurrent results
print(f"Node count: {results[0].result_set[0][0]}")
print(f"Created Alice: {results[1].result_set[0][0]}")
print(f"Created Bob: {results[2].result_set[0][0]}")
# Close the connection when done
await pool.aclose()
# Run the async example
if __name__ == "__main__":
asyncio.run(main())
```
## Development
### Running Tests
Start a FalkorDB instance:
```sh
docker run -d --rm --name falkordb-test -p 6379:6379 falkordb/falkordb:latest
```
Install dependencies and run tests:
```sh
poetry install
poetry run pytest -v
```
Stop the test instance:
```sh
docker stop falkordb-test
```
### Release
Build and publish to PyPI:
```sh
poetry build
poetry publish
```
Raw data
{
"_id": null,
"home_page": "https://github.com/kiarina/falkordb-py",
"name": "kiarina-falkordb",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "FalkorDB, GraphDB, Cypher",
"author": "FalkorDB inc",
"author_email": "info@falkordb.com",
"download_url": "https://files.pythonhosted.org/packages/af/16/e03a3e8710e064087a8abc8de268392537d1545bcd27838e783bec321dad/kiarina_falkordb-1.3.0.tar.gz",
"platform": null,
"description": "[](https://github.com/kiarina/falkordb-py)\n[](https://github.com/kiarina/falkordb-py/releases/latest)\n[](https://badge.fury.io/py/kiarina-falkordb)\n\n# kiarina-falkordb\n\n> **\u2139\ufe0f This is a fork of [falkordb-py](https://github.com/FalkorDB/falkordb-py) with additional fixes.**\n>\n> **Original work by the [FalkorDB team](https://github.com/FalkorDB/falkordb-py).**\n>\n> This fork includes bug fixes and improvements that are pending upstream merge.\n\n[](https://app.falkordb.cloud)\n\nFalkorDB Python client\n\nsee [docs](http://falkordb-py.readthedocs.io/)\n\n## Installation\n```sh\npip install kiarina-falkordb\n```\n\n## Differences from upstream\n\n- \u2705 **redis-py 7.0.0 support** - Compatible with redis-py >= 7.0.0\n- \u2705 **Python 3.9+ required** - Dropped Python 3.8 support for redis-py 7.x compatibility\n- \u2705 Fixed async `from_url()` to correctly use host/port from URL\n- \u2705 All original functionality preserved\n- \ud83d\udd04 Actively maintained with upstream compatibility\n\n## Usage\n\n### Run FalkorDB instance\nDocker:\n```sh\ndocker run --rm -p 6379:6379 falkordb/falkordb\n```\nOr use [FalkorDB Cloud](https://app.falkordb.cloud)\n\n### Synchronous Example\n\n```python\nfrom falkordb import FalkorDB\n\n# Connect to FalkorDB\ndb = FalkorDB(host='localhost', port=6379)\n\n# Select the social graph\ng = db.select_graph('social')\n\n# Create 100 nodes and return a handful\nnodes = g.query('UNWIND range(0, 100) AS i CREATE (n {v:1}) RETURN n LIMIT 10').result_set\nfor n in nodes:\n print(n)\n\n# Read-only query the graph for the first 10 nodes\nnodes = g.ro_query('MATCH (n) RETURN n LIMIT 10').result_set\n\n# Copy the Graph\ncopy_graph = g.copy('social_copy')\n\n# Delete the Graph\ng.delete()\n```\n\n### Asynchronous Example\n\n```python\nimport asyncio\nfrom falkordb.asyncio import FalkorDB\nfrom redis.asyncio import BlockingConnectionPool\n\nasync def main():\n\n # Connect to FalkorDB\n pool = BlockingConnectionPool(max_connections=16, timeout=None, decode_responses=True)\n db = FalkorDB(connection_pool=pool)\n\n # Select the social graph\n g = db.select_graph('social')\n\n # Execute query asynchronously\n result = await g.query('UNWIND range(0, 100) AS i CREATE (n {v:1}) RETURN n LIMIT 10')\n\n # Process results\n for n in result.result_set:\n print(n)\n\n # Run multiple queries concurrently\n tasks = [\n g.query('MATCH (n) WHERE n.v = 1 RETURN count(n) AS count'),\n g.query('CREATE (p:Person {name: \"Alice\"}) RETURN p'),\n g.query('CREATE (p:Person {name: \"Bob\"}) RETURN p')\n ]\n\n results = await asyncio.gather(*tasks)\n\n # Process concurrent results\n print(f\"Node count: {results[0].result_set[0][0]}\")\n print(f\"Created Alice: {results[1].result_set[0][0]}\")\n print(f\"Created Bob: {results[2].result_set[0][0]}\")\n\n # Close the connection when done\n await pool.aclose()\n\n# Run the async example\nif __name__ == \"__main__\":\n asyncio.run(main())\n```\n\n## Development\n\n### Running Tests\n\nStart a FalkorDB instance:\n```sh\ndocker run -d --rm --name falkordb-test -p 6379:6379 falkordb/falkordb:latest\n```\n\nInstall dependencies and run tests:\n```sh\npoetry install\npoetry run pytest -v\n```\n\nStop the test instance:\n```sh\ndocker stop falkordb-test\n```\n\n### Release\n\nBuild and publish to PyPI:\n```sh\npoetry build\npoetry publish\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "FalkorDB Python client (fork with additional fixes)",
"version": "1.3.0",
"project_urls": {
"Homepage": "https://github.com/kiarina/falkordb-py",
"Repository": "https://github.com/kiarina/falkordb-py"
},
"split_keywords": [
"falkordb",
" graphdb",
" cypher"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b812b205afe995c0fb0fc0bb2a4dabfc45d336996a8e9dcf483ca0d425e1f23e",
"md5": "7b8d3c9bf7601275b56669e293a244fe",
"sha256": "56da45c968465784c1617c0c583ccf03ba1e4182229cf1754495b93026bf83f7"
},
"downloads": -1,
"filename": "kiarina_falkordb-1.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7b8d3c9bf7601275b56669e293a244fe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 35177,
"upload_time": "2025-10-24T00:30:49",
"upload_time_iso_8601": "2025-10-24T00:30:49.873016Z",
"url": "https://files.pythonhosted.org/packages/b8/12/b205afe995c0fb0fc0bb2a4dabfc45d336996a8e9dcf483ca0d425e1f23e/kiarina_falkordb-1.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af16e03a3e8710e064087a8abc8de268392537d1545bcd27838e783bec321dad",
"md5": "540b10eecf41bd1d7d68d6d77c44e089",
"sha256": "786ee07e0aaa3f901b0a013dc0a3a76afe8617aa5ea7cc6826bdf35dbf06702a"
},
"downloads": -1,
"filename": "kiarina_falkordb-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "540b10eecf41bd1d7d68d6d77c44e089",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 29640,
"upload_time": "2025-10-24T00:30:50",
"upload_time_iso_8601": "2025-10-24T00:30:50.985883Z",
"url": "https://files.pythonhosted.org/packages/af/16/e03a3e8710e064087a8abc8de268392537d1545bcd27838e783bec321dad/kiarina_falkordb-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-24 00:30:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kiarina",
"github_project": "falkordb-py",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "kiarina-falkordb"
}