aosingh / sqlite_rx

Python Client and Server for SQLite database with Docker support

Home Page:https://aosingh.github.io/sqlite_rx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sqlite_rx

PyPI version sqlite-rx Downloads

Python 3.8 Python 3.9 Python 3.10 Python 3.11 Python 3.12

PyPy3.8 PyPy3.9

For documentation, usage and examples refer https://aosingh.github.io/sqlite_rx/

Introduction

SQLite is a lightweight database written in C. Python has in-built support to interact with the database (locally) which is either stored on disk or in memory.

With sqlite_rx, clients should be able to communicate with an SQLiteServer in a fast, simple and secure manner and execute queries remotely.

Key Features

Install

pip install -U sqlite_rx

Server

SQLiteServer runs in a single thread and follows an event-driven concurrency model (using tornado's event loop) which minimizes the cost of concurrent client connections. Following snippet shows how you can start the server process.

# server.py

from sqlite_rx.server import SQLiteServer

def main():

    # database is a path-like object giving the pathname 
    # of the database file to be opened. 
    
    # You can use ":memory:" to open a database connection to a database 
    # that resides in RAM instead of on disk

    server = SQLiteServer(database=":memory:",
                          bind_address="tcp://127.0.0.1:5000")
    server.start()
    server.join()

if __name__ == '__main__':
    main()

Client

The following snippet shows how you can instantiate an SQLiteClient and execute a simple CREATE TABLE query.

# client.py

from sqlite_rx.client import SQLiteClient

client = SQLiteClient(connect_address="tcp://127.0.0.1:5000")

with client:
  query = "CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)"
  result = client.execute(query)
>> python client.py

{'error': None, 'items': []}

About

Python Client and Server for SQLite database with Docker support

https://aosingh.github.io/sqlite_rx

License:MIT License


Languages

Language:Python 98.9%Language:Dockerfile 1.1%