Skip to content

kylinholmes/pastee

Repository files navigation

Pastee - 跨平台剪贴板管理工具

使用 Rust + Tauri 构建的轻量 免费 离线的剪贴板管理工具。

🎯 项目状态

当前阶段: Phase 4 - 开发与实现 (2026-01-13)

✅ 已完成功能

  • 数据库层 - SQLite 迁移系统,支持 tag 数组
  • 剪贴板监听 - 实时监听文本、HTML、图片、文件
  • 颜色检测 - 支持 HEX、RGB/RGBA、HSL/HSLA 多种格式
  • 搜索功能 - 支持中文/日文/韩文的全文搜索(LIKE 查询)
  • IPC 接口 - 5 个核心命令 + 事件推送
  • 全局快捷键 - 自动权限检测和设置打开功能
  • Tray 菜单 - 托盘图标集成(当前关闭用于测试)
  • 调试界面 - Debug Page 用于功能验证
  • 完整测试 - 53 个单元测试 + 集成测试

📋 核心 API

命令 用途
get_recent_clips(limit, offset) 获取最近剪贴板记录
search_clips(query) 搜索剪贴板内容
get_clip_content(id) 获取完整内容
toggle_pin(id) 切换置顶状态
delete_clip(id) 删除记录
open_accessibility_settings() 打开系统设置(macOS)

📁 项目结构

pastee/
├── ai/                          # 项目文档
│   ├── master_context.md       # 项目总体上下文
│   ├── backend_quick_reference.md
│   ├── data_directory_quick_ref.md
│   └── migration_guide.md       # 数据库迁移指南
│
├── src/                         # 前端 React
│   ├── components/
│   │   ├── DebugPage.tsx       # 调试界面
│   │   └── ...
│   └── lib/
│       └── tauri.ts            # Tauri IPC 接口
│
├── src-tauri/                   # 后端 Rust
│   ├── src/
│   │   ├── lib.rs              # 应用主入口
│   │   ├── clipboard.rs        # 剪贴板监听
│   │   ├── persist.rs          # 数据持久化
│   │   └── setting.rs          # 设置管理
│   ├── migrations/             # 数据库迁移
│   │   └─── 001_init.sql
│   └── tests/                  # 单元测试
│
├── HOTKEY_ACCESSIBILITY.md      # 快捷键和权限处理文档
├── QUICK_REFERENCE.md           # 快速参考卡片
└── package.json

🚀 快速开始

前置要求

  • Node.js 18+ & Bun
  • Rust 1.70+
  • macOS 12+ 或 Windows 10+

开发模式

# 启动开发服务
cd /Users/kylin/pastee
bun run tauri dev

构建生产版本

bun tauri build

📊 测试

cd src-tauri

# 运行所有测试
cargo test

# 运行特定测试
cargo test test_add_text
cargo test --test db_tests

测试覆盖率: 53 个测试全部通过 ✅

🔧 重要文档

文档 内容
ai/master_context.md 项目总体架构和需求规格
ai/migration_guide.md 数据库迁移管理指南
HOTKEY_ACCESSIBILITY.md 快捷键权限处理实现详解
QUICK_REFERENCE.md 快速参考和常见命令
src-tauri/tests/README.md 测试框架说明

🎮 使用 Debug Page

  1. 启动应用 - bun run tauri dev
  2. 打开浏览器 - 应用会自动打开
  3. 功能演示:
    • 顶部搜索框:实时搜索剪贴板内容
    • 类型过滤按钮:按内容类型筛选
    • 快捷键信息:点击「显示帮助」了解权限设置

📝 数据存储

数据默认存储在 $HOME/Documents/pastee/

~/Documents/pastee/
├── clippy.db        # SQLite 数据库
├── clippy.db-shm    # 共享内存文件
├── clippy.db-wal    # 预写日志
└── images/          # 图片存储目录

🔐 隐私与安全

  • 完全离线 - 无网络请求,数据仅存本地
  • 本地加密 - SQLite 支持加密模式(可扩展)
  • 应用黑名单 - 自动跳过密码管理器等敏感应用
  • 用户控制 - 所有数据用户可随时删除

🛠️ 开发指南

添加新功能

  1. 后端: 在 src-tauri/src/ 修改对应模块
  2. IPC 命令: 在 src-tauri/src/lib.rs 增加 #[tauri::command]
  3. 前端: 在 src/lib/tauri.ts 导出对应函数
  4. 测试: 在 src-tauri/tests/ 增加测试用例

修改数据库 Schema

  1. 创建新的迁移文件: src-tauri/migrations/00X_description.sql
  2. src-tauri/src/persist.rsinclude_str!() 引入
  3. 遵循 迁移指南

📞 当前状态

  • 构建: ✅ 编译成功
  • 测试: ✅ 53/53 通过
  • 部署: 📦 可构建发行版本

📄 许可证

MIT License - 详见 LICENSE 文件


最后更新: 2026-01-13
维护者: AI Assistant

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors