SQLite3 官方支持 WebAssembly!

SQLite 官方的 WASM 项目终于来了!这表示 WebAssembly 在 SQLite 社区完全进入工业级应用阶段!

1. WASM 是什么

WebAssembly,又名 WASM,是一种标准,它定义了一种低级编程语言,适合作为与许多其他语言交叉编译的目标,以及通过浏览器中的虚拟机运行。它在设计时考虑了通过 JavaScript 编写脚本,它提供了一种将 C 代码(以及其他代码)编译为 WASM 并通过 JavaScript 编写脚本的方法,尽管 JavaScript 和 C 之间还存在巨大的编程模型差异,但它为不同语言和 JS 的交互带来了标准桥梁。

根据 Ending 定律:“所有可以用WebAssembly实现的终将会用WebAssembly实现”。

SQLite 官方支持 WASM 只是再次证明和强化了定律有效性。实际上,在很早之前网上就有很多基于 LLVM 或 Emscripten 构建的 SQLite 库,它们最终可以被包装为 JS 库。

扩展阅读:WASM 作为 W3C 的 第 4 个标准,已经在不同的领域取得巨大的进展。比如 Docker 发布集成 WebAssembly 的首个技术预览版。同时大量编程语言已经开始支持 WASM 平台(完整列表可参考 https://wasmlang.org/ ),国内的 Go+凹语言KCL 配置语言 等都把对 WASM 的支持作为较高的优先级。关于 WASM 的更多信息可以参考 《WebAssembly标准入门》

2. SQLite 官方支持 WebAssembly

https://sqlite.org/wasm/doc/ckout/index.md

其实早在 2022 年 9 月,Google 的 Chrome 开发团队宣布与 SQLite 开发团队合作,并开发了 SQLite 的 WebAssembly 版本,作为替代的 Web SQL 数据库 API。WebAssembly 起源于 SQLite 开发团队的努力。

3. 在浏览器体验 SQLite

打开网址 https://sqlite.org/fiddle/

4. 项目的具体目标

根据官网介绍,主要有 4 个目标:

  • 绑定一个低级的 sqlite3 API,在使用方面尽可能接近原生 API。
  • 更高级别的面向对象风格 API,类似于 sql.js 和 node.js 样式的实现。
  • 基于 Worker 的 API,以支持多线程环境更容易使用 SQLite 功能。
  • 基于 Worker API 的 Promise 包装,对用户完全隐藏了跨线程通信方面复杂性

不在此列的特性:

  • WASM 作为 Web 标准,我们只认 UTF8 一种编码格式,UTF16 支持暂无计划
  • WASM 虽然不局限于 Web 环境,但是 WASM 版本的 SQLite 依然是聚焦 Web 环境的场景
  • WASM 只支持较新的特性,老旧特性将被乘机清除掉

简而言之,在提供底层 API 能力的同时,针对面向对象、多线程等环节提供简单易用的 API。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/215802/sqlite3-wasm

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。