neural/inf/rs/cozo/cozo-lib-wasm/README-zh.md

Cozo WASM 库(浏览器)

可以在浏览器中运行的 Cozo WASM 库。NodeJS 用户请使用 原生库 :速度更快,功能也更多。

本文叙述的是如何安装设置库本身。有关如何使用 CozoDB(CozoScript)的信息,见 文档

安装

npm install cozo-lib-wasm

你也可以直接从 发布页面 下载 cozo_wasm-<VERSION>-wasm32-unknown-unknown.zip 文件,然后直接在你的网页代码中引用:见 此处index.html 范例。

使用

参考 此文件。简单地说:

import init, {CozoDb} from "cozo-lib-wasm";

然后:

let db;
init().then(() => {
    db = CozoDb.new();
    // db can only be used after the promise resolves 
})

API

export class CozoDb {
    free(): void;

    static new(): CozoDb;

    run(script: string, params: string): string;

    export_relations(data: string): string;

    // 注意:通过此接口载入数据不会激活触发器
    import_relations(data: string): string;
}

注意所有的 API 都是同步的。如果你的查询需要比较长的时间返回,浏览器的主线程会被阻塞。阻塞浏览器主线程不是好事,因此在这种情况下你可以考虑在 web worker 中运行 Cozo WASM 模块。不过预编译的 WASM 模块不支持在有些浏览器的 web worker 中运行:见 此页面 的 "Support for ECMAScript modules" 信息。

编译

编译需要 Rust 工具链NodeJS 与 npm,再加上 wasm-pack

用以下命令来编译:

wasm-pack build --target web --release

建议编译时设置环境变量 CARGO_PROFILE_RELEASE_LTO=fat 使生成的库更快(以增加编译时间为代价)。

以上我们给出了参数 --target web:上面在浏览器中的使用例子只支持用此参数编译出的库。更多信息参见 WASM 的文档

使用 --target no-modules 编译出的库可以在更多浏览器中的 web worker 运行,但是调用方式与上面给出的例子有区别,也更麻烦。详情见 文档

Homonyms

neural/inf/rs/cozo/README-zh
Logo [![docs](https://img.shields.io/readthedocs/cozo/latest)](https://docs.cozodb.org/zh_CN/latest/) [![cozo-node](https://img.shields.io/npm/v/cozo-node)](https://www.npmjs.com/package/cozo-node) [![npm…
neural/inf/rs/cozo/cozo-bin/README-zh
Cozo(独立程序) [![server](https://img.shields.io/github/v/release/cozodb/cozo)](https://github.com/cozodb/cozo/releases) 本文叙述的是如何安装设置 Cozo 的独立程序本身。有关如何使用 CozoDB(CozoScript)的信息,见 [文档](https://docs.cozodb.org/zh_CN/latest/index.html) 。 下载 独立服务的程序可以从 [GitHub 发布页](https://github.com/cozodb/cozo/releases) 或…
neural/inf/rs/cozo/cozo-lib-python/README-zh
Cozo Python 库 [![pypi](https://img.shields.io/pypi/v/cozo_embedded)](https://pypi.org/project/cozo_embedded/) [CozoDB](https://www.cozodb.org) 的 Python 嵌入式库 `cozo_embedded` 的源代码。 一般来说你应该使用 [PyCozo](https://github.com/cozodb/pycozo) 库( [Gitee 镜像](https://gitee.com/cozodb/pycozo) ),而不是直接使用此库。…
neural/inf/rs/cozo/cozorocks/README-zh
Cozorocks 对 RocksDB C++ 接口的封装。
neural/inf/rs/cozo/cozo-lib-swift/README-zh
Cozo Swift 库(仅支持苹果硬件) [![pod](https://img.shields.io/cocoapods/v/CozoSwiftBridge)](https://github.com/cozodb/cozo/tree/main/cozo-lib-swift) 本文叙述的是如何安装设置库本身。有关如何使用 CozoDB(CozoScript)的信息,见 [文档](https://docs.cozodb.org/zh_CN/latest/index.html) 。 本库可在 macOS(苹果 ARM 或 Intel 芯片)以及 iOS(iPad、iPhone、模拟器)中使用。…
neural/inf/rs/cozo/cozo-lib-nodejs/README-zh
Cozo NodeJS 库 [![cozo-node](https://img.shields.io/npm/v/cozo-node)](https://www.npmjs.com/package/cozo-node) NodeJS 的嵌入式 [CozoDB](https://www.cozodb.org) 库。 本文叙述的是如何安装设置库本身。有关如何使用 CozoDB(CozoScript)的信息,见 [文档](https://docs.cozodb.org/zh_CN/latest/index.html) 。 安装 安装过程中需要从 [GitHub…
neural/inf/rs/cozo/cozo-lib-java/README-zh
Cozo Java 语言库 这里是 Cozo 的 JNI 接口库,可以在 Java/JVM 语言/安卓中使用。 一般情况下,这个库不是直接使用的。用于应当使用以下调用此库的库: [Cozo Java](https://github.com/cozodb/cozo-lib-java) ([镜像](https://gitee.com/cozodb/cozo-lib-java)):在 JVM Java 中使用 [Cozo Clojure](https://github.com/cozodb/cozo-clj) ([镜像](https://gitee.com/cozodb/cozo-clj)):在…
neural/inf/rs/cozo/cozo-core/README-zh
Cozo-core [![Crates.io](https://img.shields.io/crates/v/cozo)](https://crates.io/crates/cozo) Cozo 数据库核心部分的实现。
neural/inf/rs/cozo/cozo-lib-c/README-zh
Cozo C 语言库 [![C](https://img.shields.io/github/v/release/cozodb/cozo)](https://github.com/cozodb/cozo/releases) 这里是 Cozo 的 C API 的源代码。 本文叙述的是如何安装设置 Cozo 的 C 语言库。有关如何使用 CozoDB(CozoScript)的信息,见 [文档](https://docs.cozodb.org/zh_CN/latest/index.html) 。 预编译的库可从 [GitHub…

Graph