carthage-software/suffete

GitHub: carthage-software/suffete

用 Rust 编写的独立 PHP 类型系统核心库,为构建 PHP 静态分析、类型检查等工具提供底层的类型表示与比较能力。

Stars: 8 | Forks: 0

A Carthaginian general before the Sophetim

"A Carthaginian general before the Sophetim", W. J. Morgan, from Ridpath's Universal History (1897). Public domain.

# Suffete [![CI 状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/76fcba2886203413.svg)](https://github.com/carthage-software/suffete/actions/workflows/ci.yml) [![CodSpeed](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/carthage-software/suffete?utm_source=badge) [![Crates.io](https://img.shields.io/crates/v/suffete.svg)](https://crates.io/crates/suffete) [![许可证](https://img.shields.io/crates/l/suffete.svg)](https://github.com/carthage-software/suffete/blob/main/LICENSE-MIT) Suffete 是一个用 Rust 编写的独立 PHP 类型系统。它提供了 PHP 类型的表示和类型检查器。实际上,它是一个 _类型比较器_,可以回答诸如“类型 `A` 是类型 `B` 的子类型吗?”、“这两种类型的联合类型是什么?”以及“此处的泛型参数如何解析?”等问题。 它 **不是** 静态分析器或类型化的 Linter。它是此类工具可以构建于其上的类型系统 _核心_。 其驱动需求是 **完整性**:Mago、PHPStan、Psalm 或 Hack 能够表达的每一种 PHP 类型都应该能够在此处表示,并具备可用的 PHP 分析器所期望的语义。 ## 状态 ## 路线图 长期目标是让 `suffete` 替换 [Mago](https://github.com/carthage-software/mago)(Carthage Software 的 PHP 工具链)内部的类型系统核心。在迁移具备可行性之前,`suffete` 将留在其自己的代码库中,以便在没有附带分析器的情况下,可以独立地进行设计、测试和基准测试。 ## 类型系统文档 [`type-system/`](./type-system/) 目录包含了对 PHP 类型系统及其上定义的操作的类型理论描述。共四章: - [`types.md`](./type-system/types.md):每个原子、每个细化维度、每种类型所代表的含义。 - [`comparison.md`](./type-system/comparison.md):子类型关系、不相交性、重叠以及允许的类型强制转换。 - [`combination.md`](./type-system/combination.md):作为最小上界的联合类型、吸收规则、泛化阈值。 - [`intersection.md`](./type-system/intersection.md):交集、差集以及断言下的类型窄化。 这些章节描述了任何实现都必须满足的约定。随着实现的成熟,其细节可能会不断演进,但类型系统宇宙的整体架构是稳定的。 ## 入门 ``` # Cargo.toml [dependencies] suffete = "0.1" ``` (在实际执行此操作之前,请参阅上方的警告。) ## 许可证 Suffete 采用双重许可,您可选择以下任一许可: - Apache 许可证 2.0 版([LICENSE-APACHE](LICENSE-APACHE) 或 ) - MIT 许可证([LICENSE-MIT](LICENSE-MIT) 或
标签:Carthage Software, Mago, OpenVAS, PHP, Rust, SOC Prime, 云安全监控, 代码分析, 凭证管理, 可视化界面, 子类型判断, 底层核心, 开发工具, 性能优化, 检测绕过, 类型推断, 类型检查器, 类型系统, 编译器, 网络流量审计, 语法树, 通知系统, 静态分析