StatCraft 是一款基于 100% 纯安全 Rust 语言构建的免费、现代且开源的统计软件包。作为 IBM SPSS Statistics 等专有套件的替代方案,StatCraft 兼具学术级精确度、秒级启动速度及防崩溃特性,适用于心理学研究、临床试验分析、高校教学及企业数据处理场景。

核心设计原则

  • 极致稳定性:代码库零 unsafe 块,杜绝 panic! 等崩溃风险。面对格式错误数据、空样本或除以零等情况,系统返回显式的类型化 Result<T, E> 错误,确保应用不崩溃。
  • 命令驱动引擎:所有分析与交互均封装为原子引擎命令(EngineCommand),支持非破坏性撤销/重做,可序列化为标准 SPSS 语法(.sps),并支持无头脚本化执行。
  • AI 智能体集成:内置本地 IPC 套接字(端口 18493)及模型上下文协议(MCP)服务器。Antigravity、Claude、ChatGPT、Ollama 等 AI 智能体可通过桥接检查元数据、执行批量语法、进行数学计算,并将结果实时流式传输至输出查看器。
  • 经典输出体验:提供分层导航大纲树与多级透视表,还原 SPSS 风格。结果支持一键复制为结构化 TSV 数据,粘贴至 Excel 时无列错位或日期转换问题。
  • 矢量优先 UI:基于原生 egui 渲染,采用矢量 SVG 图标,严格执行零 Emoji 策略,彻底消除跨平台“豆腐块”显示问题。
  • 动态国际化:用户界面字符串完全解耦至 Project Fluent 目录,支持运行时实时切换语言。

主要功能模块

1. 双视图数据管理

数据视图采用高性能虚拟化表格网格,支持原始数值与人类可读值标签即时切换。变量视图作为综合元数据字典,管理变量名称、9 种经典 SPSS 数据类型(数值、日期、字符串等)、宽度精度、描述性标签、离散/范围值标签、缺失值配置、列对齐方式及测量水平(标度、有序、名义)。

2. 统计过程覆盖

  • 描述性统计:涵盖均值、标准差、方差、极值、偏度、峰度及有效 N 等指标。
  • 频率分析:提供频数、各类百分比、百分位数及四分位数计算。
  • T 检验:支持单样本、独立样本(含 Levene 方差齐性检验、Student's t 及 Welch's t)和配对样本 T 检验,输出完整置信区间及相关系数。
  • 方差分析:支持单因素 ANOVA,包含 Fisher's F 检验、平方和分解及 Levene 检验。

3. AI 桥接与自然语言交互

StatCraft 是全球首款原生支持 MCP 协议的统计软件。用户无需掌握复杂 SPSS 语法,只需通过自然语言向 AI 助手下达指令(如“比较男女薪资差异并解释显著性”),AI 即可自主查询元数据、生成并执行命令、检索数学输出,最终提供包含效应量和 p 值解释的自然语言摘要。

相较于普通 LLM 聊天,StatCraft 桥接具备以下优势:

  • 消除幻觉:LLM 负责引导查询,原生 Rust 引擎以 ≤ 10^{-6} 精度执行确定性数学运算,并经 SciPy 和 SPSS 算法验证。
  • 实时同步:GUI 界面随智能体执行实时更新,透视表与语法日志同步呈现。
  • 数据隐私:套接字桥接在本地运行(127.0.0.1:18493),敏感数据不出工作站。
  • 自主执行:智能体可运行任意 SPSS 语法脚本,处理数据排序、过滤、重编码及缺失值。

技术架构与开发

项目遵循 ArtCraft 分层法则,依赖严格向下流动:

  • L6 statcraft_app:桌面 GUI(egui/eframe/DialogKit/输出查看器)。
  • L5 statcraft_syntax:命令总线、SPS 语法解析器、引擎事务。
  • L4 statcraft_reporting:透视表模型及 TSV/HTML/Text 导出。
  • L2 statcraft_algo:纯统计数学算法(对标 SciPy)。
  • L1 statcraft_core:内存数据集、RawTable、变量字典。
  • L0 statcraft_io:数据编解码器(CSV/TSV/Excel/SPSS)。

跨切面工具包括 statcraft_bridge(IPC/MCP 服务器)、statcraft_i18n(Fluent 本地化)及 xtask(开发者工具链)。

快速开始

需安装 Rust 工具链(建议 1.80+)。克隆仓库后,通过以下命令以发布模式运行:

git clone https://github.com/kobaltgit/StatCraft.git
cd StatCraft
cargo run --package statcraft_app --release -j 1

项目强制执行严格的完成定义(DoD),所有测试及架构 linter 必须零警告通过。可使用 cargo test --workspace -j 1 运行全套测试,或通过 xtask 检查文件大小、架构分层、UI 合规性及 SPSS 功能对等状态。

许可证与支持

StatCraft 采用 MIT 或 Apache 2.0 双重许可。项目完全基于 Rust 构建,无遗留 C/Fortran 代码。如需支持开发,可通过 Lava.top 进行赞助。