Lightweight, Thread-Safe, Version-Agnostic, SQL Client Implementation
Project description
AnySQL
Lightweight, Thread-Safe, Version-Agnostic, SQL Client Implementation inspired by Databases
Features
- Lightweight - no use of sqlalchemy or other massive frameworks
- ThreadSafe - implements threadsafe features for fearless concurrent usage
- Flexible - acts as a standard frontend for a wide variety of SQL backends
- Powerful - simple API design with powerful utilities and quality-of-life features
Installation
$ pip install anysql # plain install
$ pip install anysql[mysql] # install with mysql driver
$ pip install anysql[postgres] # install with postgres driver
Security
It should be noted that anysql implements its own query parameterization to allow for greater API flexibility and performance, rather than rely on individual sql backends or relying on massive frameworks like sqlalchemy to handle query generation.
The existing parameterization has been thoroughly tested with sqlmap, the world standard of sql pentesting-tools, to prevent and detect any possible sql-injection vulnerabilities.
The test-suite used is publically available within the source-code repo within the tests folder.
Example
# Create a database instance, and connect to it.
from anysql import Database
database = Database('sqlite://:memory:')
database.connect()
# Create a table.
query = """CREATE TABLE HighScores (id INTEGER PRIMARY KEY, name VARCHAR(100), score INTEGER)"""
database.execute(query=query)
# Insert some data.
query = "INSERT INTO HighScores(name, score) VALUES (:name, :score)"
values = [
{"name": "Daisy", "score": 92},
{"name": "Neil", "score": 87},
{"name": "Carol", "score": 43},
]
database.execute_many(query=query, values=values)
# Run a database query.
query = "SELECT * FROM HighScores"
rows = database.fetch_all(query=query)
print('High Scores:', rows)
Project details
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
File details
Details for the file anysql-0.0.4.tar.gz
.
File metadata
- Download URL: anysql-0.0.4.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a796fdf68fcfb761faa0ab2faf3e1f4dfa974ed6aafc445f73e301f6be237e8c |
|
MD5 | 0216c20c8c7ad211dffe130f3e3dba4b |
|
BLAKE2b-256 | 3485580b15c567f0a6f955ba65a41a174236462f03d35ef9f84c16c6e31137de |
File details
Details for the file anysql-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: anysql-0.0.4-py3-none-any.whl
- Upload date:
- Size: 17.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60c6fc4e071d13088d2cb152b032caf3b6ec245573d60d4209b681edaf3bedf3 |
|
MD5 | bfedb489930699bb9bde853ea0d87795 |
|
BLAKE2b-256 | 24b30138e381592b25d144319501a6347ed40c130c4af9e94e5d6e08495425a5 |