惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Schneier on Security
Schneier on Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tenable Blog
P
Proofpoint News Feed
V
Vulnerabilities – Threatpost
Project Zero
Project Zero
Latest news
Latest news
S
Schneier on Security
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threatpost
Simon Willison's Weblog
Simon Willison's Weblog
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
Spread Privacy
Spread Privacy
Cisco Talos Blog
Cisco Talos Blog
T
Troy Hunt's Blog
S
Secure Thoughts
C
Cisco Blogs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
O
OpenAI News
L
LINUX DO - 最新话题
T
Threat Research - Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园_首页
月光博客
月光博客
博客园 - 【当耐特】
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏
L
Lohrmann on Cybersecurity
D
DataBreaches.Net
美团技术团队
B
Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
有赞技术团队
有赞技术团队
D
Docker
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
AI
AI
Martin Fowler
Martin Fowler
Attack and Defense Labs
Attack and Defense Labs
小众软件
小众软件

chai2010 的博客

ChatGPT 会“杀死”编程吗? 2023: WASM 原生时代已经扑面而来 2022 国产编程语言盘点 “Go 2” 正式落地,中国 Gopher 踏上新征程! 凹语言开源季度总结-CSDN KCL 论文被 SETTA 2022 会议录用 Go 语言 CGO 用户深度定制 SQLite 代码 1024・GLCC 开源夏令营 KusionStack 顺利结题 WebAssembly将引领下一代计算范式[翻译] KCL:蚂蚁自研的配置策略语言 Go 语言十年而立,Go2 蓄势待发 谈谈Go语言字符串 io.EOF设计的缺陷和改进 《WebAssembly 标准入门》开始预售了,欢迎关注! Go语言实现WebDAV文件系统 Go语言和Windows服务 报告 图书 关于
SQLite3 官方支持 WebAssembly!
chai2010 · 2022-10-31 · via chai2010 的博客

文章目录

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

1. WASM 是什么

WebAssembly,又名 WASM,是一种标准,它定义了一种低级编程语言,适合 (A) 作为与许多其他语言交叉编译的目标,以及 (B) 通过浏览器中的虚拟机运行。它在设计时考虑了通过 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。

文章作者 chai2010

上次更新 2022-10-31

许可协议 CC BY-NC-ND 4.0