{"id":15009859,"url":"https://github.com/questdb/py-questdb-client","last_synced_at":"2025-08-20T04:32:48.411Z","repository":{"id":44370577,"uuid":"503029222","full_name":"questdb/py-questdb-client","owner":"questdb","description":"Python client for QuestDB InfluxDB Line Protocol","archived":false,"fork":false,"pushed_at":"2024-04-15T12:11:18.000Z","size":459,"stargazers_count":47,"open_issues_count":12,"forks_count":7,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-04-24T05:23:08.402Z","etag":null,"topics":["client-library","pandas","python","python3","questdb","questdb-ilp-client"],"latest_commit_sha":null,"homepage":"https://py-questdb-client.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/questdb.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-06-13T16:15:57.000Z","updated_at":"2024-04-25T19:28:22.222Z","dependencies_parsed_at":"2023-11-07T01:49:35.436Z","dependency_job_id":"491a2162-502c-4cc8-9c12-82d199822261","html_url":"https://github.com/questdb/py-questdb-client","commit_stats":{"total_commits":75,"total_committers":5,"mean_commits":15.0,"dds":0.4,"last_synced_commit":"eafada1bf1cd6a8370315468ea2f999dfd1a6932"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questdb%2Fpy-questdb-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questdb%2Fpy-questdb-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questdb%2Fpy-questdb-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questdb%2Fpy-questdb-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/questdb","download_url":"https://codeload.github.com/questdb/py-questdb-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230394228,"owners_count":18218707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client-library","pandas","python","python3","questdb","questdb-ilp-client"],"created_at":"2024-09-24T19:28:55.464Z","updated_at":"2025-08-20T04:32:48.398Z","avatar_url":"https://github.com/questdb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=================================\nQuestDB Client Library for Python\n=================================\n\nThis is the official Python client library for `QuestDB \u003chttps://questdb.io\u003e`_.\n\nThis client library implements QuestDB's variant of the\n`InfluxDB Line Protocol \u003chttps://questdb.io/docs/reference/api/ilp/overview/\u003e`_\n(ILP) over HTTP and TCP.\n\nILP provides the fastest way to insert data into QuestDB.\n\nThis implementation supports `authentication\n\u003chttps://py-questdb-client.readthedocs.io/en/latest/conf.html#authentication\u003e`_\nand full-connection encryption with\n`TLS \u003chttps://py-questdb-client.readthedocs.io/en/latest/conf.html#tls\u003e`_.\n\nInstall\n=======\n\nThe latest version of the library is **3.0.0** (`changelog \u003chttps://py-questdb-client.readthedocs.io/en/latest/changelog.html\u003e`_).\n\n::\n\n    python3 -m pip install -U questdb[dataframe]\n\nQuickstart\n==========\n\nStart by `setting up QuestDB \u003chttps://questdb.io/docs/quick-start/\u003e`_ .\nOnce set up, you can use this library to insert data.\n\nThe most common way to insert data is from a Pandas dataframe.\n\n.. code-block:: python\n\n    import pandas as pd\n    from questdb.ingress import Sender\n\n    df = pd.DataFrame({\n        'symbol': pd.Categorical(['ETH-USD', 'BTC-USD']),\n        'side': pd.Categorical(['sell', 'sell']),\n        'price': [2615.54, 39269.98],\n        'amount': [0.00044, 0.001],\n\n        # NumPy float64 arrays are supported from v3.0.0rc1 onwards.\n        # Note that requires QuestDB server \u003e= 9.0.0 for array support\n        'ord_book_bids': [\n            np.array([2615.54, 2618.63]),\n            np.array([39269.98, 39270.00])\n        ],\n\n        'timestamp': pd.to_datetime(['2021-01-01', '2021-01-02'])})\n\n    conf = f'http::addr=localhost:9000;'\n    with Sender.from_conf(conf) as sender:\n        sender.dataframe(df, table_name='trades', at='timestamp')\n\nYou can also send individual rows. This only requires a more minimal installation::\n\n    python3 -m pip install -U questdb\n\n.. code-block:: python\n\n    from questdb.ingress import Sender, TimestampNanos\n\n    conf = f'http::addr=localhost:9000;'\n    with Sender.from_conf(conf) as sender:\n        sender.row(\n            'trades',\n            symbols={'symbol': 'ETH-USD', 'side': 'sell'},\n            columns={\n                'price': 2615.54,\n                'amount': 0.00044,\n\n                # NumPy float64 arrays are supported from v3.0.0rc1 onwards.\n                # Note that requires QuestDB server \u003e= 9.0.0 for array support\n                'ord_book_bids': np.array([2615.54, 2618.63]),\n            },\n            at=TimestampNanos.now())\n        sender.flush()\n\n\nTo connect via the `older TCP protocol \u003chttps://py-questdb-client.readthedocs.io/en/latest/sender.html#ilp-tcp-or-ilp-http\u003e`_, set the\n`configuration string \u003chttps://py-questdb-client.readthedocs.io/en/latest/conf.html\u003e`_ to:\n\n.. code-block:: python\n\n    conf = f'tcp::addr=localhost:9009;'\n    with Sender.from_conf(conf) as sender:\n        ...\n\n\nYou can continue by reading the\n`Sending Data Over ILP \u003chttps://py-questdb-client.readthedocs.io/en/latest/sender.html\u003e`_\nguide.\n\nLinks\n=====\n\n* `Core database documentation \u003chttps://questdb.io/docs/\u003e`_\n\n* `Python library documentation \u003chttps://py-questdb-client.readthedocs.io/\u003e`_\n\n* `GitHub repository \u003chttps://github.com/questdb/py-questdb-client\u003e`_\n\n* `Package on PyPI \u003chttps://pypi.org/project/questdb/\u003e`_\n\nCommunity\n=========\n\nStop by our `Community Forum \u003chttps://community.questdb.io\u003e`_ to \nchat with the QuestDB team.\n\nYou can also `sign up to our mailing list \u003chttps://questdb.io/contributors/\u003e`_\nto get notified of new releases.\n\n\nLicense\n=======\n\nThe code is released under the `Apache License 2.0\n\u003chttps://github.com/questdb/py-questdb-client/blob/main/LICENSE.txt\u003e`_. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquestdb%2Fpy-questdb-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquestdb%2Fpy-questdb-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquestdb%2Fpy-questdb-client/lists"}