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。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux 6.2 获得对 Apple M1 Pro/Max/Ultra 硬件的主线支持
Asahi Linux 是一个旨在将 Linux 移植到配备 Apple Silicon 芯片 Mac 设备上的项目,项目的目标不仅仅是让 Linux 能够在这些设备上运行,而是要将它打磨到可以用作日常操作系统的程度。 此前,对 Apple M1 芯片的的适配工作一直集中在 Asahi Linux 本身,但据外媒 Phoronix 介绍,现在 Asahi Linux 团队已将开始 Apple M1 系列芯片的支持代码提交到 Linux 6.2 主线中。目前 Apple M1 Pro、Max 和 Ultra 芯片以及包含这些芯片的 Apple Mac 设备的设备树,以及一些音频相关的更改代码已通过 soc.git 的 for-next 分支排队,等待 Linux 6.2 的合并窗口。 如果成功测试并合并 Asahi Linux 的M1 支持代码 ,Linux 6.2 内核将成为 Apple M1 Pro/Max/Ultra 系列芯片支持的上游。这也意味着:除了 Linux 内核和 Asahi Linux ,其他的 Linux 发行版也可以为基于 Arm 的 Apple 硬件提供良好的开箱...
- 下一篇
实时数据湖 Flink Hudi 实践探索
导读:首先做个自我介绍,我目前在阿里云云计算平台,从事研究 Flink 和 Hudi 结合方向的相关工作。 目前,Flink + Hudi 的方案推广大概已经有了一年半的时间,在国内流行度也已比较高,主流的公司也会尝试去迭代他们的数仓方案。所以,今天我介绍的主题是 Flink 和 Hudi 在数据湖 Streaming 方向的一些探索和实践,将会围绕以下四点展开: Apache Hudi 背景介绍 Flink Hudi 设计 Hudi 应用场景 Hudi RoadMap 点击查看直播回放 Apache Hudi 背景介绍 首先和大家分享下数据湖发展的历史背景,以及 Hudi 的基本特性。 1. 数据湖发展的历史背景 在我个人观点看来,传统的数仓方案(如 Hive)其实本身也是数据湖,而且我会把 Hudi、Iceberg、Delta Lake 都看成是数仓下一代新的解决方案,而不仅仅只是一种湖格式。那为什么近一年来会有数据湖这一新的数仓形态的诞生? 伴随着目前云存储(尤其是对象存储)逐步成熟的大背景,数据湖的解决方案也会逐步往云原生靠近。如图一所示,湖格式会适配云厂商的对象存储,做云厂商...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境