Skip to main content

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

anysql-0.0.4.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

anysql-0.0.4-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

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

Hashes for anysql-0.0.4.tar.gz
Algorithm Hash digest
SHA256 a796fdf68fcfb761faa0ab2faf3e1f4dfa974ed6aafc445f73e301f6be237e8c
MD5 0216c20c8c7ad211dffe130f3e3dba4b
BLAKE2b-256 3485580b15c567f0a6f955ba65a41a174236462f03d35ef9f84c16c6e31137de

See more details on using hashes here.

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

Hashes for anysql-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 60c6fc4e071d13088d2cb152b032caf3b6ec245573d60d4209b681edaf3bedf3
MD5 bfedb489930699bb9bde853ea0d87795
BLAKE2b-256 24b30138e381592b25d144319501a6347ed40c130c4af9e94e5d6e08495425a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page