@cognica-io/uqa
v0.3.8
Published
Node.js bindings for embedded UQA and local or Cloud HTTP SQL
Readme
UQA for Node.js
@cognica-io/uqa provides embedded UQA Engine bindings and direct local or Cloud HTTP SQL for Node.js.
Install
npm install @cognica-io/[email protected]The installation selects one prebuilt native addon from the @cognica-io npm organization for the current operating system and CPU. Supported packages cover Linux glibc on x64 and arm64, macOS on x64 and arm64, and Windows MSVC on x64 and arm64.
Applications that use only remote HTTP SQL can omit the optional native packages:
npm install --omit=optional @cognica-io/[email protected]HttpEngine, HttpSQLStream, SQLParam, vector, and tensor run in JavaScript on Node.js 16 or newer using Node's built-in HTTP modules. They require no Rust toolchain, native addon, or embedded database. The package loads the native addon only when embedded Engine functionality is used. Both CommonJS and ESM support the main package and the explicit @cognica-io/uqa/http entry point.
Embedded native addons include the Lucene-compatible Nori dictionary and analyzer by default. Use list_analyzers() and analyze_text('nori', input) through Engine.sql to inspect Korean token graphs, morphology, offsets, and positions.
Save this example in an .mjs file so it can use ESM and top-level await:
import { HttpEngine, SQLParam } from "@cognica-io/uqa/http";
const engine = HttpEngine.fromEnv();
const result = await engine.sql("SELECT $1 AS id", [SQLParam.scalar(42)]);
console.log(result.rows);An explicit URL and token or fromEnv() needs no CLI. The asynchronous local() and cloud() constructors invoke the installed uqa CLI once to resolve a project, then send SQL directly over HTTP.
Use
import { Engine } from "@cognica-io/uqa";
const engine = new Engine();
const result = await engine.sql("SELECT 1 AS n");
console.log(result.rows);
engine.close();See the UQA Engine manual for the complete Node.js binding contract.
For existing installations, read the 0.3.8 upgrade guide.
License
Official native packages embed the pinned Nori dictionary. THIRD-PARTY/ contains the complete Lucene, MeCab-ko-dic, and JDK Unicode notices, modification attribution, and original resource/model manifests. The manifests describe source resources; the dictionary bytes are embedded in the native addon and require no separate download.
UQA Engine is licensed under AGPL-3.0-only with optional FOSS and noncommercial application exceptions. See LICENSING.md in this package.
