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, 云安全监控, 代码质量检查, 可视化界面, 死代码检测, 类型检查器, 网络流量审计, 语言服务器, 通知系统, 静态分析