Rust-powered auditable SQL injection detection for Python. Built for AI agents.
Project description
sqlhund
Rust-powered auditable SQL injection detection for Python 🐍. Built for AI agents ✨.
AI agents now write and execute SQL directly. Text-to-SQL pipelines, MCP database connectors, LangChain SQL toolkits, and autonomous data analysts all generate queries on the fly. That creates a new attack surface: an LLM that can be prompted, jailbroken, or simply confused into generating '; DROP TABLE users; -- and then running it.
sqlhund is a runtime guardrail for that. It detects SQL injection patterns and classifies them by CWE and CAPEC. The detection engine is written in Rust with Python bindings via PyO3, so it can sit in an agent's hot path without adding latency. Every match is classified across two axes: technique (HOW the injection works) and impact (WHAT it can do). You get structured, auditable threat intelligence instead of a bare boolean.
>>> import sqlhund
>>> sqlhund.is_query_malicious("SELECT * FROM users WHERE id = 1")
False
>>> sqlhund.is_query_malicious("' OR 1=1 --")
True
[!NOTE]
The primary goal is to prevent AI agents from manipulating data in or the structure of your database.
Contents
- Installation
- Quick Start
- Usage Examples
- Features
- How sqlhund Compares
- Security Classification
- Supported Databases
- Benchmarks
- Building from Source
- Testing
- Contributing
Installation
pip install sqlhund # pip
poetry add sqlhund # poetry
uv add sqlhund # uv
Requires Python 3.10+. No runtime dependencies.
Quick Start
sqlhund exposes two functions. That's the entire API.
import sqlhund
# Boolean check
sqlhund.is_query_malicious("SELECT * FROM users; DROP TABLE users")
# True
# Detailed analysis with CWE/CAPEC classification
sqlhund.analyze_query("SELECT * FROM users; DROP TABLE users")
# {
# 'is_malicious': True,
# 'matches': {
# 'general': [{
# 'technique': ['CWE-89'], # HOW: SQL Injection
# 'impact': ['CWE-285', 'CWE-471'], # WHAT: Auth bypass + data tampering
# 'capec': [66] # CAPEC-66: SQL Injection
# }]
# }
# }
# Safe queries pass through cleanly
sqlhund.analyze_query("SELECT id FROM users WHERE id = 1")
# {'is_malicious': False, 'matches': {}}
See Detailed Threat Analysis below for the file-operation and multi-database detection cases.
Usage Examples
Guarding an LLM Agent's SQL Tool Calls
from langchain.tools import tool
import sqlhund
@tool
def execute_sql(query: str) -> str:
"""Execute a SQL query against the database. Rejects malicious queries."""
if sqlhund.is_query_malicious(query):
return "Query rejected: potential SQL injection detected."
return database.execute(query)
sqlhund sits between the LLM's output and your database. The agent never reaches the database if the query is malicious, no matter how the prompt was crafted.
Validating AI-Generated SQL
import sqlhund
def execute_ai_query(query: str):
"""Execute AI-generated SQL with injection protection."""
if sqlhund.is_query_malicious(query):
raise ValueError("Potential SQL injection detected")
# Safe to execute
return database.execute(query)
Detailed Threat Analysis
result = sqlhund.analyze_query("SELECT * FROM users WHERE id = 1 OR 1=1")
if result['is_malicious']:
for db_name, patterns in result['matches'].items():
print(f"Database: {db_name}")
for pattern in patterns:
print(f" Technique: {pattern['technique']}") # CWE-89
print(f" Impact: {pattern['impact']}") # CWE-285
print(f" CAPEC: {pattern['capec']}") # 66
File-operation attacks are detected too, scoped to the database they target:
sqlhund.analyze_query("SELECT load_extension('evil')")
# {
# 'is_malicious': True,
# 'matches': {
# 'sqlite': [{
# 'technique': ['CWE-89', 'CWE-610', 'CWE-114'],
# 'impact': ['CWE-200', 'CWE-285'],
# 'capec': [470]
# }]
# }
# }
Pre-screening User Input
def sanitize_search_query(user_input: str) -> str:
"""Validate search input before building SQL."""
test_query = f"SELECT * FROM products WHERE name LIKE '%{user_input}%'"
if sqlhund.is_query_malicious(test_query):
raise ValueError("Invalid search term")
return user_input
Features
- Fast: core detection engine written in Rust, compiled to a native Python extension
- Accurate: 100% precision and recall on a 10M+ query benchmark (zero false positives, zero false negatives)
- Multi-database: detects injection patterns targeting SQLite, PostgreSQL, and DuckDB
- Zero dependencies: ships as a self-contained native wheel
- AI-agent ready: built as a guardrail for LLM-generated SQL
- Security classification: maps detected patterns to CWE and CAPEC taxonomies for threat intelligence
How sqlhund Compares
| Tool | What it does | Where it fits |
|---|---|---|
| sqlhund | Pattern detection plus CWE/CAPEC classification, Python-native | Runtime guardrail for AI-generated or agent-relayed SQL |
libinjection |
C library, pattern-based SQLi/XSS detection | Closest classic analog. No native Python bindings, no CWE/CAPEC mapping |
sqlmap |
Active penetration-testing scanner | Offensive testing, not a runtime guard |
| Parameterized queries | Prevents injection at query-construction time | The right long-term fix, but it doesn't help when an LLM generates SQL whose structure isn't known ahead of time |
[!NOTE] sqlhund doesn't replace parameterized queries. It covers the case parameterization can't: SQL whose structure is generated dynamically by a model.
Security Classification
sqlhund classifies detected patterns using industry-standard security frameworks.
Dual-Axis CWE Analysis
Every detected pattern is analyzed across two independent axes:
-
Technique (HOW): CWE identifiers describing the injection mechanism
- CWE-89: SQL Injection
- CWE-610: External Resource Reference (file operations)
- CWE-94/95: Code/Eval Injection
- CWE-77/78: Command/OS Command Injection
- CWE-114: Process Control (loading untrusted libraries)
- CWE-116/184: Encoding evasion and filter bypass
-
Impact (WHAT): CWE identifiers describing the attack consequences
- CWE-200: Information Disclosure
- CWE-285: Authorization Bypass
- CWE-269: Privilege Escalation
- CWE-471: Data Tampering
- CWE-400: Resource Exhaustion (DoS)
- CWE-208: Timing Side-Channel (blind injection)
- CWE-497: System Information Exposure
CAPEC Attack Patterns
Matches are also mapped to CAPEC attack pattern IDs:
- CAPEC-66: SQL Injection
- CAPEC-7: Blind SQL Injection
- CAPEC-54: Query System for Information
- CAPEC-470: Expanding Control over the OS from the Database
- CAPEC-664: Server-Side Request Forgery
OWASP Alignment
sqlhund detects patterns from OWASP Top 10 A03:2021 - Injection, covering:
- SQL Injection (CWE-89)
- Command Injection (CWE-77, CWE-78)
- Code Injection (CWE-94, CWE-95)
- File/Resource Injection (CWE-610)
Resources:
- OWASP SQL Injection Prevention Cheat Sheet
- OWASP Query Parameterization Cheat Sheet
- OWASP Injection Prevention Cheat Sheet
- CWE-89: SQL Injection
- CAPEC-66: SQL Injection
Supported Databases
sqlhund detects database-specific injection patterns for:
| Database | Detection Patterns |
|---|---|
| General | UNION, comments, tautologies, subqueries, time delays |
| SQLite | load_extension, ATTACH, PRAGMA, virtual tables |
| PostgreSQL | pg_read_file, COPY, DO blocks, dblink, extensions |
| DuckDB | read_csv, ATTACH, httpfs, CREATE SECRET, macros |
Benchmarks
Evaluated against the RbSQLi dataset: 10,304,026 labeled SQL queries (2,813,146 malicious, 7,490,880 benign).
| Predicted Malicious | Predicted Benign | |
|---|---|---|
| Actual Malicious | 2,813,146 | 0 |
| Actual Benign | 0 | 7,490,880 |
Precision: 100% · Recall: 100% · Accuracy: 100%
Building from Source
Requires Rust, Maturin, and uv.
git clone https://github.com/KanishkNavale/sqlhund
cd sqlhund
make dev # set up development environment
make build # compile debug build
make release # compile optimized release build
Testing
Run unit tests (Rust + Python):
make unittest
Run evaluation against the full RbSQLi dataset (download the dataset, place it at tests/data/wild.csv):
make wildtest
Contributing
Contributions are welcome. See the open issues or submit a pull request.
License
The MIT License licenses this project.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sqlhund-0.0.11-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 661.4 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccc2fddfde1b412ff2c18ba36184ee6a10f9340e3516544cbac3357986bdc4ac
|
|
| MD5 |
829311ef73c55434d023410407297197
|
|
| BLAKE2b-256 |
4d585cf66b37685864af7e2c7d752e5a8ea8916634c0b6b9baa1cbf8a29f3e16
|
File details
Details for the file sqlhund-0.0.11-cp314-cp314-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp314-cp314-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 746.7 kB
- Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55fc5684565192ec80e79abedc689d39f17f0c9b0ca1539d3ff1db8c4430c6ba
|
|
| MD5 |
c14a47677e2343c6606f88d645379596
|
|
| BLAKE2b-256 |
7a44dfe3a4f64c9a98254a5778b41ba3d748002c615b59f3ae0f55a5d14e3804
|
File details
Details for the file sqlhund-0.0.11-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 656.5 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7a82ded86915e25bc72ea07c0f2feaae7eaa0d23ebcb5dd39efff945937ed62
|
|
| MD5 |
5cfba9fe9b912f6110b026397f3c9218
|
|
| BLAKE2b-256 |
886cef260df7278a37551bd33adb32b347a7c00d749df03beac1a49b0480a862
|
File details
Details for the file sqlhund-0.0.11-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 661.2 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6ed699748fd8f51ae9d5bb45f1df34d8c9591db1e27d143f97d4beaf9ea3198
|
|
| MD5 |
260221812267b824097409163a0671b6
|
|
| BLAKE2b-256 |
8a4cd744c8b79d800588420aaaa28e8c14399d94d6b2bf338614f42584950242
|
File details
Details for the file sqlhund-0.0.11-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 746.5 kB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84b0928741e40691cbc92e24145a703801037fabb8a6f82487f0669deea8552b
|
|
| MD5 |
613144f986f576fb42bafc07c286d27f
|
|
| BLAKE2b-256 |
340dc6ef69cfc75f86f126f295bc5132d4057af68dccd0c78aac7c5e0320474c
|
File details
Details for the file sqlhund-0.0.11-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 656.2 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bf40077b4d3fdffddd4f4a4f258494856acac52b0f6f0354852c6f5054b4787
|
|
| MD5 |
edec357ba188b539b43aed9a34f90ebf
|
|
| BLAKE2b-256 |
cf304f5958d74f628e2d590285ae68939d991cc53ea6efadd1e0905c74424646
|
File details
Details for the file sqlhund-0.0.11-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 661.0 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32dd2b3e3c9da8fe160aa138c93088f2cb0e3933a058fb69eb98517600518558
|
|
| MD5 |
e7218da3bba7385d99baf80f4cd8dc90
|
|
| BLAKE2b-256 |
f9ea307a3b600c56118de7f586b01cc583059956777b66b05e897e5af58d28c5
|
File details
Details for the file sqlhund-0.0.11-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 746.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1f2c36259be9d4fb32edb78f9b63848553b8f534850ca6ae7bba2d77d72068d
|
|
| MD5 |
84213a2463b903a4f6417a5fe34d6edd
|
|
| BLAKE2b-256 |
fcbe8bb79fff7cbc529aa8b862bb9ce2ba07ff44101d2b73c8357ba494cd85bf
|
File details
Details for the file sqlhund-0.0.11-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 656.0 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d9c5eb42d939d0ae8dd5cf1a5a96e44fca0ff96952b16fd32cf2807cd58504e
|
|
| MD5 |
2e3386bb0e4c19e79e00e9d9b5c7461c
|
|
| BLAKE2b-256 |
b5dffb96d44a8e87fafd7af350460520b198bedfd6fe76f4dd38882ca3762542
|
File details
Details for the file sqlhund-0.0.11-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 663.4 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14ba1e23690dfc7677714dad41d34ebfa39842747ae904c96eca933f36e37d55
|
|
| MD5 |
7bc8ee6e772ca280f95f25d4b5db563f
|
|
| BLAKE2b-256 |
0af1be7715f125ddf0c048c7661285108cb244f1c33f8ab06ae24148eefcb84d
|
File details
Details for the file sqlhund-0.0.11-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 746.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c21a6622358fd499668a2b7ca02a9b503b283d09d489e849ea3822558653fdb
|
|
| MD5 |
581c55347209eb568afbea90533d49c9
|
|
| BLAKE2b-256 |
00cfb1b512040ae7b1090986620780a76f0c25e0fb0871037659e953b5a84b2e
|
File details
Details for the file sqlhund-0.0.11-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 657.0 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40000b2d75e97f4f59d4c3d504b235f770fb8f21d996175a7c13ff2662568d28
|
|
| MD5 |
1be10c6f7e5fc9db20dfad6274c2503b
|
|
| BLAKE2b-256 |
75dc5f227afb84fbcab901e7324cbee583490de4c40eed36eae8258bdec3c22a
|
File details
Details for the file sqlhund-0.0.11-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 663.7 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1e582eef4ce7a04308c0562f39ae2e2adc50f78dbb28fbd87fcfa658a774c16
|
|
| MD5 |
292d5305315e5e960f0a9b6a62d4cabc
|
|
| BLAKE2b-256 |
a22f621b5c8335e1568b6dafd88d5a060a60d29f58cc209c96556db5c753c81f
|
File details
Details for the file sqlhund-0.0.11-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 747.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b27b45de44781d9817e25ffaaf18eb3efadaad739eacbfd1139c0d1ec0bfe4d8
|
|
| MD5 |
f5ae557458708decffab070e8c3a1995
|
|
| BLAKE2b-256 |
a5bbd74c51a5c65102317b74d08b5e55a694e24d65a2af6525fbe1d06839df14
|
File details
Details for the file sqlhund-0.0.11-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: sqlhund-0.0.11-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 657.2 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cafa24907879a5eac4eb672a9bc11755209800e3e663f1d9f0a6fdb1bcf0413
|
|
| MD5 |
4fded86224b1d62e57651961e05c4ebd
|
|
| BLAKE2b-256 |
8eff574cc40d874efa97cf994dc742f8e5c9651c245aab47154a8243608a6fdd
|