cosmicspork/svastha

GitHub: cosmicspork/svastha

一款自主托管、端到端加密、本地优先的个人医疗记录管理应用,用户通过助记词掌控全部健康数据的加密密钥。

Stars: 0 | Forks: 0

# Svastha [![ci](https://static.pigsec.cn/wp-content/uploads/repos/cas/99/993938d8ce5e902ccfb9d6747725c320d855dea3235ed9a304cedf0d94c9321f.svg)](https://github.com/cosmicspork/svastha/actions/workflows/ci.yml) 自主托管、端到端加密、本地优先的个人医疗记录。你的 健康历史以加密形式保存在你的设备上,通过无法读取它的中继进行同步,并且完全归你所有,由你决定如何保留、携带和分享。 ## 关于名称 **Svastha** 来自梵文 स्वस्थ (*sva-stha*):*sva* 意为“自我”, *stha* 意为“安住”或“屹立”。它意味着立足于自我,这也是 阿育吠陀中代表健康的词汇。自我加上健康就是其核心理念:你的记录, 由你掌控。 ## 为什么 患者通常是唯一掌握自己完整诊疗情况的人, 无论是因为记录是以纸质形式交给他们,还是因为记录分散在 各自只能看到部分信息的门户网站中。Svastha 提供了一个汇聚这些信息并完全拥有它们的地方,使用仅由你持有的助记词派生出的密钥进行加密, 因此无论谁运行同步基础设施(包括托管的 Svastha),都一无所知, 也不持有任何数据。 ## 技术栈 - **Rust 核心**:一个共享的 `core` crate(加密信封和事件 schema) 编译为原生和 WASM,一个零知识 `relay`,以及一个受信任的 `node`。 - **Svelte 5 PWA**(bun + Vite),本地优先,通过 WASM 调用 `core`。 - **AGPL-3.0**。 ## 布局 | 路径 | 说明 | |---|---| | `crates/core` | 信任合约:加密信封和事件 schema。原生和 WASM。 | | `crates/svastha` | 总括性 crate,以纯粹的 `svastha` 名称重新导出 `core`。 | | `crates/wasm` | WASM 绑定,将 `core` 暴露给 Web 应用(作为 `@svastha/core` 发布到 npm)。 | | `crates/relay` | 用于加密 blob 的零知识存储转发服务器。 | | `crates/node` | 受信任的处理客户端;将推理委托给兼容 OpenAI 的 endpoint。后续版本发布。 | | `web` | Svelte 5 PWA,本地优先,通过 WASM 调用 `core`。 | | `spec` | 版本化的通信协议和测试向量。 | | `fixtures` | 合成的、不含 PHI 的测试数据。 | | `docs/ARCHITECTURE.md` | 设计的真正来源。 | ## 入门指南 Web: ``` cd web bun install bun run dev ``` Rust(通过 rustup): ``` brew install rustup && rustup default stable cargo build --workspace ``` ## 常见任务 方案位于 [`justfile`](justfile) 中: ``` just # list recipes just web-dev # run the web app just check # fmt-check + clippy + svelte-check just test # cargo test just all # everything CI runs just e2e # local-only PWA <-> relay browser smoke (needs cargo + wasm-pack) ``` ## 发布 发布通过 [release-please](https://github.com/googleapis/release-please) 自动化。 `main` 分支上的[约定式提交](https://www.conventionalcommits.org)会累积 成一个发布 PR;合并它会打上版本标签(`v0.0.x`),创建 GitHub 发布,并将五个 crate 发布到 crates.io,将 wasm SDK 作为 [`@svastha/core`](https://www.npmjs.com/package/@svastha/core) 发布到 npm。 在 1.0 版本之前,功能和修复会提升补丁版本号。
标签:Rust, SBOM分析, Svelte, WASM, 医疗记录, 可视化界面, 端到端加密, 网络流量审计, 自动化攻击, 零知识