22 个版本
0.0.21 | 2024 年 5 月 31 日 |
---|---|
0.0.19 | 2024 年 1 月 3 日 |
0.0.18 | 2023 年 12 月 20 日 |
0.0.17 | 2023 年 11 月 20 日 |
0.0.0 | 2022 年 1 月 24 日 |
#101 in 编程语言
1,258 每月下载量
1.5MB
40K SLoC
使用 Rust 编写的 JavaScript 编译器和 TypeScript 检查器,侧重于静态分析和运行时性能。
[!IMPORTANT] Ezno 正在积极开发中,目前不支持足够的功能来检查现有项目。查看入门指南以了解它目前支持的功能。
Ezno 是什么
- 一个可以通过 CLI(以及正在开发中的 LSP)使用的 JavaScript 类型检查器
- 检查程序以确保类型安全(没有运行时
TypeError
错误)(只要定义是合理的) - 类型旨在保证合理性和跟踪以进行更好的静态分析
- 一个 命令式 类型系统,它跟踪和评估函数和控制流结构的副作用。它与解释器类似,但使用类型而不是 值 并不运行 IO 副作用等
- 一系列类型实验的集合。许多正在开发中,处于原型阶段。一些新行为专门针对 JavaScript,而其他行为可以应用于其他语言
- 用 Rust 编写
- 快速 和 小型
- 开源!你可以帮助构建 Ezno!
- 通过更深入的静态分析来挑战传统的类型检查、优化和编译方法
Ezno 不是什么
- eNZo,Z 在 N 前面(发音为 'Fresno',不带 'fr')😀
- 与 TSC 保持一致或 1:1,它有一些不同的行为 但是 应该能在使用 TSC 的现有项目中正常工作
- 更快,作为一种服务于大型代码库的手段。首先删除冗余和复杂的代码!
- 更智能,作为一种允许更多 动态模式 的手段。保持简单!
- 二进制可执行编译器。它接收JavaScript(或TypeScript或Ezno的超集)作为输入,并执行类似于传统编译器的类似过程,但最终输出JavaScript。然而,在未来,它可能使用其事件(副作用)表示生成更低级别的格式。
了解更多关于Ezno的信息
本项目是一个由几个crate组成的 workspace。
crate | 代码行数 | 包含 |
---|---|---|
checker | 存储类型和上下文,类型检查逻辑和可选的解析器AST的合成 | |
parser | AST定义,解析逻辑,AST转字符串和访问 |
帮助贡献
查看良好的初次问题,并在讨论中发表评论!请随时就检查实现代码的任何部分提出问题。
阅读CONTRIBUTING.md以获取有关构建和测试的信息。
依赖关系
~2–13MB
~145K SLoC