Skip to main content

UQA Engine

UQA Engine is an embeddable database engine that lets one application use a PostgreSQL 18-compatible SQL surface across the behavior covered by its differential suite, full-text search, vector search, graph queries, and ranked retrieval through a shared Rust runtime.

It is designed for applications that need more than a relational table but do not want to assemble a separate database, search server, vector store, and graph engine for every query path.

What you can build

  • Run relational queries, joins, aggregates, CTEs, windows, JSON operations, and transactions with PostgreSQL 18 compatibility across the verified SQL surface.
  • Search text with BM25 or Bayesian BM25, retrieve vectors with KNN, and combine both signals in hybrid queries.
  • Store named graphs, execute Cypher and regular path queries, and call graph traversal or centrality functions from SQL.
  • Start in memory for experiments, then choose the default SQLite backend or the pure-Rust redb backend without changing the query API.
  • Use the same SQL result and parameter shapes against a local or Cloud UQA node through authenticated Rust, Python, Node.js, and browser HTTP engines.
  • Embed the engine in Rust or C/C++, or use the Python, Node.js, and browser WASM bindings included in the workspace.

New in 0.6.3

Version 0.6.3 reduces memory required by large multi-row INSERTs, transaction snapshots and native SQLite text-index mutations. It preserves nested SQL cursor scopes and deadlines, handles catalog-refresh failures inside transaction ownership, and avoids repeated metadata construction in projected aggregate batches. See the release history.

EXPLAIN (MEMORY) reports the selected native executable's live storage before execution in TEXT, JSON, XML and YAML. The SQL contract describes the fields and their measurement boundary.

The platform and build guide covers native packages, browser WASM and iOS/iPadOS source builds using the existing Rust crate or C/C++/Swift integration. Follow the 0.6.3 upgrade guide when updating an existing installation.

Mathematical foundation

A Typed Carrier Algebra for Unified Query Execution states the implementation-grounded theory behind UQA Engine. It distinguishes document support, weighted relations, decorated postings, ranked views, SQL bags, join tuples, graph context, and aggregate state while showing how they compose through one typed planning and execution framework.

The manuscript consolidates and revises the published work on unified query algebra, its graph-data extension, and the Bayesian framework for hybrid search. For academic use, cite the software and the papers relevant to the features used; machine-readable metadata is provided in CITATION.cff.

Try it in a terminal

Install the prebuilt Python package to get both the Python binding and the usql command:

python -m pip install uqa==0.6.3
usql

Building the full workspace requires Rust 1.95 or newer and native build tools. Embedded Rust crates support Rust 1.90; the CLI and Python source builds require Rust 1.95.

Start the interactive usql shell from the repository:

cargo run -p uqa-cli --bin usql

Create a table and run a text search:

CREATE TABLE notes (
    id INTEGER PRIMARY KEY,
    title TEXT,
    body TEXT
);

CREATE INDEX notes_body_gin ON notes USING gin (body);

INSERT INTO notes (id, title, body) VALUES
    (1, 'Rust async', 'Futures and the Tokio runtime'),
    (2, 'Embedded Rust', 'Drivers for constrained devices'),
    (3, 'Web application', 'Forms, routing, and templates');

SELECT id, title, _score
FROM notes
WHERE text_match(body, 'rust async')
ORDER BY _score DESC
LIMIT 5;

Use a file-backed database by adding --db:

cargo run -p uqa-cli --bin usql -- --db notes.uqa

Execute one command without entering the shell:

cargo run -p uqa-cli --bin usql -- -c "SELECT 1 AS ready"

Embed it in Rust

Add the released package to your application:

cargo add uqa@0.6.3

Korean and Japanese text analysis are separate optional features that this command does not enable: nori adds the Korean analyzer with its embedded dictionary, and kuromoji the Japanese one. Enable the ones an application uses, for example cargo add uqa@0.6.3 --features nori,kuromoji or features = ["nori", "kuromoji"] on the dependency in Cargo.toml; uqa-engine takes the same features. A build without them rejects requests for those analyzers. The usql CLI and the Python, Node.js, and browser WASM packages enable both by default.

uqa is the primary Rust package on crates.io. It is a thin facade over uqa-engine that also re-exports the core Value type; applications that need the implementation package directly can depend on uqa-engine. Public component crates including uqa-engine, uqa-client, uqa-api, and uqa-cli are also published independently. The following example creates an in-memory engine, inserts data, and runs SQL through the same interface used by a persistent engine.

use uqa::Engine;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let engine = Engine::new();

    engine.sql(
        "CREATE TABLE notes (id INTEGER PRIMARY KEY, title TEXT, body TEXT)",
        &[],
    )?;
    engine.sql(
        "CREATE INDEX notes_body_gin ON notes USING gin (body)",
        &[],
    )?;
    engine.sql(
        "INSERT INTO notes (id, title, body) VALUES
         (1, 'Rust async', 'Futures and the Tokio runtime'),
         (2, 'Embedded Rust', 'Drivers for constrained devices')",
        &[],
    )?;

    let result = engine.sql(
        "SELECT id, title, _score
         FROM notes
         WHERE text_match(body, 'rust async')
         ORDER BY _score DESC",
        &[],
    )?;

    for row in result.rows {
        println!("{row:?}");
    }

    Ok(())
}

Run the complete example from this repository:

cargo run -p uqa-engine --example text_search

Additional runnable examples cover hybrid search and encrypted storage:

cargo run -p uqa-engine --example hybrid_search
cargo run -p uqa-engine --example sqlcipher_encrypted_catalog
cargo run -p uqa-engine --example compressed_encrypted_catalog

Connect to a local or Cloud UQA node

uqa-client::HttpEngine sends SQL directly to the authenticated HTTP data plane shared by local and Cloud nodes. Native applications can resolve a project through the installed CLI once during construction, while services can continue to supply an explicit URL and token or trusted UQA_URL and UQA_TOKEN environment variables.

use uqa_client::{HttpEngine, SQLParam};
use uqa_core::Value;

# async fn example() -> Result<(), Box<dyn std::error::Error>> {
let engine = HttpEngine::cloud("notes", Some("example")).await?;
let result = engine
    .sql(
        "SELECT id, title FROM notes WHERE id = $1",
        &[SQLParam::scalar(Value::Int(42))],
    )
    .await?;
assert_eq!(result.rows.len(), 1);
# Ok(())
# }

Python and Node.js provide matching local and cloud project constructors; browsers retain explicit URL/token and environment construction because they cannot execute the CLI or access its credential store. Every client calls /v1/sql, /v1/sql/batch, and /v1/sql/stream directly after construction. See the HTTP Engine reference for connection, binding examples, result, streaming, CORS, and security contracts.

Choose a query path

Goal Starting point
Relational SQL Engine::sql or the usql shell
Local or Cloud SQL over HTTP uqa_client::HttpEngine
Streaming larger results Engine::sql_cursor or Engine::sql_columnar
Full-text retrieval text_match, fts_match, or bayesian_match
Vector retrieval VECTOR(N), TENSOR(N), knn_match, and explicit IVF or HNSW indexes
Hybrid ranking Automatic mixed-modality AND, exact fuse_bayesian_evidence or fuse_log_odds, Engine::hybrid_search, or explicit robust pool_positive_evidence and Engine::robust_hybrid_search
Graph queries Engine::run_cypher, SQL cypher, rpq, or graph_* functions
Fluent query construction uqa_api::QueryBuilder

Persistence and encryption

Engine::new() keeps data in memory, while Engine::open(path) and usql --db <path> use the default persistent SQLite backend. Persistent engines restore schemas, documents, text postings, graphs, scoring parameters, models, views, and statistics when reopened.

uqa-storage owns provider-independent contracts and shared data structures, while uqa-storage-sqlite owns SQLite connections, catalogs, indexes, transactions, graph persistence, and compressed storage. Rust callers using concrete storage types must use the updated provider imports.

Applications that want a pure-Rust single-file store can compose the engine with uqa-storage-redb. The provider owns the database, and every Engine::new_session() receives independent transaction state over the same file.

use std::sync::Arc;
use uqa::Engine;
use uqa_storage::PersistentStorageProvider;
use uqa_storage_redb::RedbStorage;

let provider: Arc<dyn PersistentStorageProvider> =
    Arc::new(RedbStorage::open("notes.redb")?);
let engine = Engine::from_persistent_provider(provider)?;
# Ok::<(), Box<dyn std::error::Error>>(())

The redb path supports the catalog, documents, full-text search, graphs, durable B-tree indexes, exact brute-force vectors, physical IVF and HNSW indexes, transactions, and savepoints. It uses the same SQL DDL and query API as SQLite; the main capability difference is that redb does not provide encryption at rest. See the Key/Value storage design for storage and transaction details.

Persistent full-text indexes use clustered postings rather than one physical row or key per (term, doc_id): one (table, field, term, doc_id / 65,536) value stores delta-encoded document IDs, term frequencies, and document lengths, while positions live in a separate value. Ranking opens score-only cursors, reuses one decode buffer for at most 128 postings per block, and leaves positional payloads unread unless a positional consumer asks for them. SQLite schema v22 and the shared Key/Value backend automatically migrate the previous per-document posting format on open; each SQLite or redb rewrite is atomic, idempotent, and rolls back without changing the old data when validation fails.

Security-sensitive deployments should use the SQLCipher path exposed by Engine::open_encrypted. Compressed encrypted containers are also available when compression is required, but they have a narrower, explicitly documented threat model and require an external trusted anchor for whole-file rollback detection.

Read the compressed VFS security contract before selecting that format.

Language bindings

Environment Workspace package Notes
Rust facade uqa Primary dependency re-exporting uqa-engine and uqa_core::Value
Rust engine uqa-engine Direct embedded implementation API and runnable examples
Rust HTTP uqa-client Authenticated local and Cloud data-plane SQL, atomic batches, and NDJSON streaming
C/C++ uqa-ffi Embedded C ABI, shared/static libraries, and iOS static-library integration
Python uqa-python pyo3/maturin bindings, the installed usql command, and synchronous local and Cloud HTTP SQL
Node.js uqa-node Node-API bindings with asynchronous embedded and local or Cloud HTTP SQL methods
Browser uqa-wasm Emscripten embedded engine with IndexedDB persistence plus fetch-based local and Cloud HTTP SQL

Released Node.js applications install @cognica-io/uqa from npm; npm selects an exact-version native optional package under @cognica-io for the current supported platform. Browser applications install the independent @cognica-io/uqa-wasm package.

The memory foreign-data wrapper is included by default. Enable arrow for native Arrow IPC sources or duckdb for native DuckDB sources; the features are independent and disabled by default. Foreign-table definitions and catalog inspection remain available for every handler; see the feature contract.

Supported platforms

Platform Architectures Interfaces
Linux (glibc) x86_64, ARM64 Rust, C/C++, Python, Node.js, usql
macOS Intel x86_64, Apple Silicon ARM64 Rust, C/C++, Python, Node.js, usql
Windows (MSVC) x86_64 Rust, C/C++, Python, Node.js, usql
Windows (MSVC) ARM64 Rust, Python, Node.js, usql
iOS / iPadOS ARM64 Embedded Rust crate or C/C++ library, built from source
iOS Simulator ARM64 on Apple Silicon Embedded Rust crate or C/C++ library, built from source
Browser WebAssembly JavaScript through @cognica-io/uqa-wasm

Native Python and Node.js packages select the matching platform during installation. C/C++ packages and standalone usql binaries are available from GitHub Releases. Linux Python wheels require glibc 2.28 or newer. iOS applications can use the Rust crate directly or link the C library as a static archive or XCFramework.

Build and test

Run source-build commands from the repository root. Use Rust 1.95 or newer for the full workspace, CLI and Python binding; embedded Rust crates require Rust 1.90 or newer. Native dependencies also require a C/C++ compiler, libclang, CMake, Make and Perl. The C package tools require CMake 3.24 or newer and Python 3.11 or newer.

On Linux, install your distribution's compiler tools, libclang development package, CMake, Perl and pkg-config. On macOS, install Xcode Command Line Tools and CMake; iOS builds require full Xcode with its iOS SDKs. On Windows, use a Visual Studio developer shell with the MSVC C++ toolchain, LLVM/libclang, CMake and native Perl available on PATH.

Native Rust and CLI

Build the embedded Rust facade or the command-line application:

cargo build --locked --release -p uqa
cargo build --locked --release -p uqa-cli --bin usql

The CLI is written to target/release/usql (usql.exe on Windows). Add --features nori,kuromoji to the Rust facade build to include both morphological analyzers; the CLI enables them by default.

Native C/C++ libraries

Select the host target: x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, x86_64-apple-darwin, aarch64-apple-darwin, or x86_64-pc-windows-msvc. For example, on Linux x86_64:

python3 scripts/build-c-bindings.py \
  --target x86_64-unknown-linux-gnu --profile release \
  --prefix target/c-installed --build-directory target/c-native-build

On macOS, set MACOSX_DEPLOYMENT_TARGET=11.0 before running the command with the matching Apple target. On Windows, use python in the MSVC developer shell. The installation contains headers, shared/static libraries, CMake targets and pkg-config metadata. Link UQA::uqa or UQA::uqa_static from CMake; see the C/C++ consumer guide.

iOS and iPadOS

Build on macOS with full Xcode selected by xcode-select. Install the device and Apple Silicon simulator Rust targets:

rustup target add aarch64-apple-ios aarch64-apple-ios-sim

In a shell used for iOS builds, configure the deployment target and the parser's Clang targets and SDKs. These settings apply to both Rust and C/C++ builds.

unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS SDKROOT MACOSX_DEPLOYMENT_TARGET
unset LIBRARY_PATH CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH
export IPHONEOS_DEPLOYMENT_TARGET=15.0
export BINDGEN_EXTRA_CLANG_ARGS_aarch64_apple_ios="--target=arm64-apple-ios${IPHONEOS_DEPLOYMENT_TARGET} -isysroot \"$(xcrun --sdk iphoneos --show-sdk-path)\""
export BINDGEN_EXTRA_CLANG_ARGS_aarch64_apple_ios_sim="--target=arm64-apple-ios${IPHONEOS_DEPLOYMENT_TARGET}-simulator -isysroot \"$(xcrun --sdk iphonesimulator --show-sdk-path)\""

Rust applications: add the crate to your application's Cargo.toml and use the Rust Engine API. Enable the analyzers your application needs:

[dependencies]
uqa = { version = "0.6.3", features = ["nori", "kuromoji"] }

Build from your application's directory with cargo build --release --target aarch64-apple-ios, or select aarch64-apple-ios-sim for the simulator. To build the Rust facade from this repository instead:

cargo build --locked --release -p uqa --features nori,kuromoji --target aarch64-apple-ios
cargo build --locked --release -p uqa --features nori,kuromoji --target aarch64-apple-ios-sim

C/C++ and Swift applications: build the C ABI as static libraries using the same iOS environment:

cargo rustc --locked --release -p uqa-ffi --lib --crate-type staticlib \
  --target aarch64-apple-ios -- --print=native-static-libs
cargo rustc --locked --release -p uqa-ffi --lib --crate-type staticlib \
  --target aarch64-apple-ios-sim -- --print=native-static-libs

The archives are target/aarch64-apple-ios/release/libuqa.a and target/aarch64-apple-ios-sim/release/libuqa.a. Both include Nori and Kuromoji by default. Combine the device and simulator libraries into one Xcode dependency:

xcodebuild -create-xcframework \
  -library target/aarch64-apple-ios/release/libuqa.a \
  -headers crates/uqa-ffi/include \
  -library target/aarch64-apple-ios-sim/release/libuqa.a \
  -headers crates/uqa-ffi/include \
  -output target/ios/UQA.xcframework

Add UQA.xcframework to the application's linked libraries with Do Not Embed, because it contains static libraries. Add the system libraries/frameworks reported by native-static-libs to the app's linker settings, including libiconv and CoreFoundation. Include <uqa/uqa.h> from C/C++. For Swift, use an application bridging header and expose the macro constants your Swift code needs as typed C constants, such as static const uqa_status app_uqa_ok = UQA_OK;. Store persistent databases in a writable application container directory, such as Application Support, and set the app's deployment target to the library's minimum or newer.

Browser WebAssembly

Install the Emscripten SDK, activate its environment, then build the browser package:

rustup target add wasm32-unknown-emscripten
bash scripts/build-wasm.sh

The JavaScript loader and WASM binary are written under crates/uqa-wasm/js. See the browser examples for loading the module and using IndexedDB persistence.

Workspace tests

Install the commit hook, then build and test the workspace:

bash scripts/install-git-hooks.sh
cargo build --workspace --locked
cargo test --workspace --locked

Run a focused test during development:

cargo test -p uqa-engine --test integration queries::sql_joins::

See CONTRIBUTING.md for contributor checks, crate ownership for implementation boundaries, and verification for compatibility tests and benchmarks.

PostgreSQL 18 compatibility

Compatibility remains incomplete. The manual and manifest-derived ledger distinguish verified behavior from remaining SQL, type, protocol and client work. The unmodified upstream regression corpus has PostgreSQL reference evidence; its complete UQA execution is still unaudited.

The repository includes a deterministic TPC-H-derived scale-factor 0.001 fixture with all 22 default queries. The self-contained correctness gate compares exact columns, row order, NULLs, text bytes, and type-aware canonical numeric values with checked-in PostgreSQL 18.4 results:

cargo test -p uqa-engine --test integration sql_tpch::

The broader PostgreSQL 18.4 gate validates the compatibility manifest and compares every checked-in value or SQLSTATE probe with a live server. Build usql in release mode before running it:

cargo build --release -p uqa-cli
python3 tests/parity/pg18/run_diff.py --validate-manifest
python3 tests/parity/pg18/run_diff.py

Stateful routine, constraint, type-and-temporal, trigger, and rewrite-rule oracles plus the pinned psycopg, pgx, and node-postgres matrix are documented in PG18 differential probes. The current milestone and open-gate ledger is the PostgreSQL 18 compatibility plan.

Current performance verification uses the deterministic regression inventory and the separate controlled-runner protocol. The 2026-11-01 controlled results record all twenty accepted comparisons for source e8abe2c88, including Q1's calibrated interval below its unchanged 1.10 limit. The TPC-H benchmark records a dated comparison of the 0.6.0 release with PostgreSQL 18; posting and relevance measurements remain dated development snapshots in the performance design.

Contributor checks, benchmark build gates, and repository conventions are documented in CONTRIBUTING.md.

Documentation

Document Use it for
Reference manual and tutorials Learning the engine, supported SQL, public APIs, and internal architecture
Runnable examples Comparing the same search, vector, graph, storage, and extension scenarios across Rust, Python, Node.js, and Browser WASM
Design documentation index Finding the right technical contract or architecture document
System architecture Crate boundaries, query planning, carriers, execution, storage, and extension points
Vector indexes Brute-force, IVF, HNSW and DiskANN behavior, parameters, persistence and correctness contracts
Vector-search benchmark Reproducing vector latency, throughput, construction cost, recall, and accuracy reports
Engine state ownership Session isolation, locks, epochs, and publication rules
Concurrent storage transactions Overlapping logical writes, snapshots, conflicts, atomic publication, and provider ownership
Key/Value storage Swappable provider contract, redb behavior, transactions, and current capability limits
Upgrade guide Package updates, Rust API changes, persistent format upgrades, and backup restoration
Compressed VFS security Encryption format, authenticated metadata, rollback limits, and deployment guidance
Performance Reproducible baselines, regression gates, bottlenecks, and benchmark limitations
Parity fixtures SQL, relevance, and vector-calibration compatibility fixtures
Citation metadata Software citation and DOI metadata for the underlying research papers
Licensing policy Apache 2.0, earlier releases, third-party attribution, and contributions
History Release-by-release changes

Project layout

Cypher default-label validation belongs to uqa-graph; Engine supplies the selected graph snapshot and retains its transaction boundary. Graph tests cover nested pattern requirements and missing-label diagnostics, while durable graph lifecycle tests remain with Engine.

RPQ syntax and its parser are shared through uqa-core; planner estimates no longer import the graph runtime. Existing graph syntax imports remain available, and parser tests move with their implementation.

The repository is a Rust workspace with small crates for the algebra, storage, scoring, graph, SQL, planning, execution, engine, CLI, APIs, and language bindings. The full dependency map and ownership rules live in the system architecture, keeping this README focused on using the project.

Model training uses shared native execution for Rust and SQL callers: uqa-execution converts projected table rows, parses training JSON, invokes uqa-ml, and publishes the trained result through Engine's model transaction boundary. Pure training-input and persisted IVF-parameter tests live with their owning crates. See the ownership design.

Creation namespace selection and index-target visibility run in SQL and native execution. Engine lends live schema, role, relation, and session guards; CTAS and index creation retain their existing authorization and collision-check order.

Contributing

See CONTRIBUTING.md for local gates, test conventions, crate boundaries, pull request guidelines, and the current contributor-licensing requirement.

AI-assisted contributions follow AI_POLICY.md, including semantic preservation, algebraic proofs for feature additions, and maintainer judgment on code and design.

License

This source tree uses the Apache License, Version 2.0. The change applies beginning with 0.6.2; already published packages retain their distributed terms, including the 0.6.1 policy. Third-party components retain their own licenses and notices. See the included LICENSE and LICENSING.md files for the complete terms and release boundary.

Optional support, warranties, and other negotiated terms are described in the commercial agreements guide. A separate commercial license is not required solely for proprietary or commercial use of Apache-licensed releases.

Metadata

Release files for uqa 0.6.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uqa 0.6.3
File Size Uploaded Provenance Actions
uqa-0.6.3.tar.gz 29.9 MB With provenance Details for uqa-0.6.3.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for uqa 0.6.3
File Actions
uqa-0.6.3-cp38-abi3-win_arm64.whl CPython 3.8 abi3 Windows ARM64 Details for uqa-0.6.3-cp38-abi3-win_arm64.whl
uqa-0.6.3-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details for uqa-0.6.3-cp38-abi3-win_amd64.whl
uqa-0.6.3-cp38-abi3-manylinux_2_28_x86_64.whl CPython 3.8 abi3 Linux glibc 2.28+ x86-64 Details for uqa-0.6.3-cp38-abi3-manylinux_2_28_x86_64.whl
uqa-0.6.3-cp38-abi3-manylinux_2_28_aarch64.whl CPython 3.8 abi3 Linux glibc 2.28+ ARM64 Details for uqa-0.6.3-cp38-abi3-manylinux_2_28_aarch64.whl
uqa-0.6.3-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details for uqa-0.6.3-cp38-abi3-macosx_11_0_arm64.whl
uqa-0.6.3-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details for uqa-0.6.3-cp38-abi3-macosx_10_12_x86_64.whl

Total release size: 377.8 MB

Release files / uqa-0.6.3.tar.gz

Download URL uqa-0.6.3.tar.gz
Size 29.9 MB
Tags Source
SHA-256 checksum
How to use checksums
3443bd9884cc94c3046911ed0c2300071f9c6ec9df7ca53962ae93b809f2e541
BLAKE2b-256 checksum
How to use checksums
1204d3282ddc89781354ffb0d39390eaa06cca90db7f5acccbd6ad98a5ce9726
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / uqa-0.6.3-cp38-abi3-win_arm64.whl

Download URL uqa-0.6.3-cp38-abi3-win_arm64.whl
Size 57.8 MB
Tags CPython 3.8 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
2a8e9ffa3633d86d62d701d008e9fcf2e6a0fb471c43460b20b905bb6bc17342
BLAKE2b-256 checksum
How to use checksums
7b82ff5285d25efe41d4a20de39b482a384130791abdfc1ba13b07bbc038c4c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / uqa-0.6.3-cp38-abi3-win_amd64.whl

Download URL uqa-0.6.3-cp38-abi3-win_amd64.whl
Size 61.0 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1707a3ad286fbf777af7ba28bd48fb1f3c4c309c57bf43a9f3171c4d1794c725
BLAKE2b-256 checksum
How to use checksums
8c74e0d03d1cc65e3a93d8ab7aa127c7d6c44a0468710a757989f86ffd4764b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / uqa-0.6.3-cp38-abi3-manylinux_2_28_x86_64.whl

Download URL uqa-0.6.3-cp38-abi3-manylinux_2_28_x86_64.whl
Size 59.3 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
4fc2c33d6dc6693b2fc1c7610b049a6e4aed8ac3bedc5627a92ae234c7e8219a
BLAKE2b-256 checksum
How to use checksums
133b04cb3264d4ccac641545d9c8fd2d7d347b2e447c15dfe7b1351e3b645abc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / uqa-0.6.3-cp38-abi3-manylinux_2_28_aarch64.whl

Download URL uqa-0.6.3-cp38-abi3-manylinux_2_28_aarch64.whl
Size 56.9 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
14e86aed0d5611d3a2674d8d552c7b316b22b3378bee86022768b3416b6794f8
BLAKE2b-256 checksum
How to use checksums
b242f47272d6dbd05a75624ce954e9f22217f56bed2769e01805dbe6a3b78c5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / uqa-0.6.3-cp38-abi3-macosx_11_0_arm64.whl

Download URL uqa-0.6.3-cp38-abi3-macosx_11_0_arm64.whl
Size 55.1 MB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
933c77976feb667ca487041e193991a3801706565ab1cdabf36d829671178bee
BLAKE2b-256 checksum
How to use checksums
af9cfb2025d19820ce8419eac0e0f1e4f20d424082f89ad1b395ed09cfcd71ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / uqa-0.6.3-cp38-abi3-macosx_10_12_x86_64.whl

Download URL uqa-0.6.3-cp38-abi3-macosx_10_12_x86_64.whl
Size 57.8 MB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e28538553ec09ef9b42052eb251fef963f2b9de6913853e933d033d3b6f4e584
BLAKE2b-256 checksum
How to use checksums
1f3f92d7682ebdb72fcdb6ba3ac59604b690725bbab381aaad5abfbaf9836f0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Security for uqa 0.6.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 7 files in this release have been uploaded with provenance metadata.

Select from 7 files

Attestation for uqa-0.6.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page