18

生猛!FFmpeg 开发者徒手撸了一个 JS 引擎

 4 years ago
source link: https://www.tuicool.com/articles/BrMnmqi
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

(给 技术最前线 加星标,每天看技术热点)

原创:技术最前线(id:TopITNews)

今天 Hacker News 首页有个热门消息,是大佬 Fabrice Bellard 在 7 月 9 日发布的新作品:QuickJS  JavaScript 引擎。

QzArIfz.jpg!web

JS 引擎是执行 JavaScript 代码的程序或解释器,它以某种形式将JavaScript编译为字节码。有个大家熟知的 JS 引擎是 V8,由 Google 用 C++ 实现的。

QuickJS 是一个可嵌入的小巧 Javascript 引擎。它支持 ES2019 规范,包括模块、异步生成器和代理。它还支持数学扩展,比如大整数(BigInt)、大浮点数(BigFloat)和操作符重载。

QuickJS 的主要特性:

0、小巧可嵌入:仅几个 C 文件,没有外部依赖,简单的 Hello World 程序需要 190 KiB 的 x86 代码。;

1、启动时间非常短的快速解释器:在单核的桌面 PC 上,运行ECMAScript 测试套件的 56000 个测试大约在 100 秒内。运行时实例的完整生命周期在不到 300 微秒内。

2、几乎完整支持 ES2019 ,包括模块、异步生成器和完整的附录B支持(遗留web兼容性)。

3、100% 通过 ECMAScript 测试套件。

4、可以把 Javascript 源代码编译到可执行文件,没有外部依赖。

5、垃圾回收使用引用计数(减少内存使用并具有确定性行为)和循环删除。

6、数学扩展:BigInt、BigFloat、操作符重载、bigint模式、数学模式。

7、命令行解释器,用 Javascript 实现上下文着色。

8、有一个小型的 C 内置标准库。

QuickJS 遵循 MIT 许可。

围观链接: https://bellard.org/quickjs/

Fabrice Bellard 是什么样的大佬?

他是法国人, 1972 年出生, 著名的计算机程序员,因  FFmpeg QEMU  等项目而闻名业内。精通 C 和 JavaScript。

EruAVb3.jpg!web

在读高中时,就 开发了著名的可执行压缩程序  LZEXE, 这是当年 DOS 上第一个广泛使用的文件压缩程序。

在  2000 年,他开发了 FFmpeg。

在 2011 年,他使用  JavaScript  写了一个 PC 虚拟机  Jslinux ,可以在浏览器中直接运行 Linux 或 Windows 操作系统。

6fMrUvZ.jpg!web

MRvIfuj.jpg!web

UnEFZnU.jpg!web

上面只是他的众多作品中少数几个。下面是维基百科上的介绍。

7rQRJf6.jpg!web

JF3AreZ.jpg!web

(截图来自维基百科)

网友评论

rIfaeen.png!web

还有什么东西是 Fabrice 不能做的么? 我的意思是,FFmpeg 本身几乎就是一篇博士论文,他仍然设法找到时间来做 TinyC 和 QEMU,现在又还做了 QuickJS。 说我嫉妒他的技术,简直就是轻描淡写。

U3Q3yeJ.png!web

这家伙就是个奇才。 你也可以感谢他的 ffmpeg 和 qemu。 我曾经工作过的一家公司试图聘请他做顾问,因为他在软件中实现了 LTE BTS。 还有什么是他没法做的吗?

觉得这条资讯有帮助?请转发给更多人

关注  技术最前线 加星标 看 IT 要闻

3qi2qqf.jpg!web

最新业界资讯,我 在看 :heart:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK