Python SQLite Client and Server
Project description
sqlite_rx
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
- Client and Server for SQLite database built using ZeroMQ as the transport layer and msgpack for serialization/deserialization.
- Authentication using ZeroMQ Authentication Protocol (ZAP)
- Encryption using CurveZMQ
- Generic authorization policy during server startup
- Schedule regular backups for on-disk databases
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': []}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sqlite_rx-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c25d899a80bbd9395f7a01ea602686c424859e49e34fbab964e5de1fc90bd8b7 |
|
MD5 | 8c9a57c6a9fd23b2abd14f95cc4e972b |
|
BLAKE2b-256 | 6cb1a87174ba865a4fb879d80f8f8273ee59d26023e02f15aaefa270987f384f |