Vincent Chan 的巴士站 🚉

兴趣 · Interests

  • 编译原理
  • 数据库
  • 编辑器

文章 · Articles

读懂 WebAssembly 如何表达 C++

Posted at 2021-08-11

本文同步发布到知乎 背景 最近因为项目原因,在项目中使用 Emscripten 将 C++ 代码编译到 WASM 以便在浏览器执行。借助这个过程我也学习了 WASM 上代码执行的方法。借助这个机会,用这篇文章介绍 C++ 是如何借助 WASM 字节码是执行的。 名词解释 WASM: WebAssembly,这个不多介…

QuickJS 源码解读(二):基础设施和标准库

Posted at 2020-12-26

上一篇文章 里面主要解释了 了 QuickJS 虚拟机的运作。第二篇文章打算介绍一下 QuickJS 里面 JavaScript 基础设施的实现。 基础设施 注意,使用 QuickJS 新建 JSContext 的时候,默认是不带基础设施的 (比如说 JSON 解析、Object、等等)。 这时候,可以调用以下命令进…

QuickJS 源码解读(一):虚拟机的实现

Posted at 2019-08-27

简介 Quick JS 是 Fabrice Bellard 今年发布的一款 JavaScript 引擎,具有以下特性: 轻量而且易于嵌入:只需几个C文件,没有外部依赖,一个x86下的简单的“hello world”程序只要180 KiB。 具有极低启动时间的快速解释器: 在一台单核的台式PC上,大约在100秒内运行E…

更多文章...

项目 · Projects

PoloDB

一个嵌入式的 NoSQL 数据库

主打轻量级、跨平台、可移植,可以像 SQLite 一样嵌入在你的程序里面。
有着类似 MongoDB 的 API,易学易用。 功能齐全、一致性好。
支持各种语言绑定,包括 Python/Node.js/C/C++/Swift 等。

Jetpack.js

一个飞快的 JavaScript 打包压缩工具

C++ 编写,运行飞快。 编译成可以独立运行的二进制,没有运行时(Node.js)依赖。
完整支持 ECMAScript 2017。
支持 JSX 语法。
友好的错误提示。

Webpack 深作用域分析 Plugin(停止维护)

一个 JavaScript 深作用域分析插件,可帮助 webpack 进行 tree-shaking

GSoC 2018 年项目,Google 认证通过。
在 Webpack 4 上运行,帮助 tree-shaking。
Webpack 5 已经集成此功能,无需额外安装插件。

更多项目...