duckdb-jev
High-throughput native DuckDB extension that batches and streams Jev Noul, Choice and Score judgments directly from SQL.
Overview
Jev for DuckDB is a native C++ extension for semantic predicates, classification and rubric scoring through Jev, run directly from SQL without Python UDFs or a separate inference server. It supports Noul predicates, Choice classification, ordered Score rubrics and mixed multi-question evaluation over text, JSON, STRUCT, LIST and ARRAY values.
It focuses on throughput and production controls: up to 1,000 judgments per request, bounded concurrent HTTP work streamed across DuckDB chunks, strict response validation, cancellation, bounded memory, per-query budgets, jittered retries, query deduplication, coalesced concurrent misses and an optional connection cache. jev_stats() reports requests, retries, cache hits, tokens and latency. The README reports live runs against jev-1.13.0 reaching about 1,943 rows per second for 1,000 Choice classifications with batching and concurrency. Releases ship native macOS and Linux builds with checksums, SBOMs and build provenance.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which of four routing labels fits this JSON row? | — |
| Yes / no | Semantic predicate over a row (e.g. does this row match a condition?)(inferred) | yes · no |
| Score | Where does this row fall on an ordered rubric?(inferred) | — |
How it works
- LOAD the extension and configure a jev secret or TYPESAFE_API_KEY
- Call Jev functions in SQL over structured columns
- Extension batches, streams and retries requests
- Inspect jev_stats() for cost and performance
Strengths
- High measured throughput with batching
- Production controls: budgets, retries, validation
- Verifiable release artifacts
Caveats
- Build requires a C++17 toolchain and libcurl if not using prebuilt archives
- Costs scale with row count
Getting started
Download a prebuilt archive from GitHub Releases (or build with uv and CMake) and LOAD '/path/to/jev.duckdb_extension' in DuckDB.At a glance
- Type
- Plugin
- Status
- beta
- Language
- C++
- Runtime
- DuckDB extension
- Has code
- yes
- Has tests
- yes
- License
- Apache-2.0
Use cases and integrations
How curated lists describe it
DuckDB ecosystem: native extension that applies Jev Noul, Choice, Score, and multi-question decisions directly to structured SQL rows, measuring 1,943 rows/s for 1,000 Choice classifications with confidence and bounded concurrency.
yibie/awesome-jevHigh-throughput, robust native DuckDB extension for batched and streaming TypeSafe/Jev classification, scoring, and semantic predicates from SQL.
logicrw/awesome-jev-projects
Frequently asked questions
How fast is it?
The README reports about 1,943 rows per second for 1,000 Choice rows with batch 100 and concurrency 10.
Is my API key exposed in results?
No, keys never appear in query results or cache keys.
How is it different from colliber/duckdb-jev?
It focuses on batching, streaming and production controls for high throughput.
Related projects
dbt package and Terraform module adding jev_noul, jev_choice, jev_score and jev_ask SQL functions to Snowflake.
LibrarybetaSQLPortable SQLite C extension depending only on libcurl that adds jev_noul, jev_choice and jev_score SQL functions.
PluginbetaCDuckDB extension and Python package for semantic SQL that batches row-level filters, joins and classification on Jev.
PluginresearchC++PostgreSQL extension with jev(), jev_prob, jev_choice and jev_score to filter, rank and classify rows by plain-language conditions.
PluginbetaCSQLite loadable extension and Python package exposing Jev Noul, Choice and Score as SQL functions and batched virtual-table scans.
PluginbetaCVGI worker that exposes System One choice, noul and score as DuckDB table functions you can LATERAL join to classify whole tables.
LibrarybetaPython