slackhq/hakana
GitHub: slackhq/hakana
Slack 用 Rust 构建的 Hack 语言补充类型检查器,通过精确类型推断实现安全分析、死代码检测和逻辑 bug 发现。
Stars: 107 | Forks: 9
# Hakana
Hakana 是由 Slack 开发的一款用于 Hack 的类型检查器。
[在线 Playground](https://hakana.dev)
它通过提供超出官方类型检查器范围的额外洞察,补充了 HHVM 内置的现有 Hack 类型检查器。
Hakana 的主要目标是推断代码库中的准确类型,并且快速完成此过程。
良好的类型推断使 Hakana 能够执行其他几项有价值的操作:
- [安全分析](https://github.com/slackhq/hakana/blob/main/docs/security_analysis.md)
- 自定义类型感知迁移
- 检测潜在的逻辑 bug
- 发现并移除死代码
## 非目标
这并不旨在取代 Hack 的默认类型检查器,后者支持一些与类型推断没有直接关联的额外特性(例如上下文和功能)。
此工具并非为每次按键时运行而设计,但它具有一个支持保存时检查的语言服务器。
## 从源码构建
克隆此代码库,如果尚未安装,请先安装 Rust 和 Cargo。
运行 `git submodule init && git submodule update` 以确保 HHVM 存在(Hakana 借用了 HHVM 的解析器)。
然后运行 `cd third-party/hhvm && git apply ../../hhvm-patch.diff && cd ../../` 以应用一些启用 WASM 编译的补丁。
然后运行 `cargo build --release`
这将在 `./target/release/hakana-default` 处创建一个二进制文件
## 运行测试
您可以使用以下命令运行所有测试:`cargo run --bin hakana --release test tests`
您可以使用 `cargo run --bin hakana test ` 运行单个测试
标签:Hack, Rust, 云安全监控, 代码质量检查, 可视化界面, 死代码检测, 类型检查器, 网络流量审计, 语言服务器, 通知系统, 静态分析