有时候你只想要一个不需要 15 个微服务、Kubernetes 和五人团队的后端。PocketBase 正是为此而生:下载一个二进制文件,运行——你就拥有了完整的数据库、REST API、管理面板和身份验证系统。
内部构成
PocketBase 基于 SQLite 构建,使用 Go 语言编写。这是关键:没有任何外部依赖,不需要 PostgreSQL。一个 20 MB 的二进制文件就包含了整个后端。
- 数据库 —— 内置迁移功能的 SQLite
- 身份验证 —— 邮箱/密码登录、OAuth2(Google、GitHub、Apple 等)、密码重置
- 文件存储 —— 文件上传、图片缩放、令牌保护
- 管理面板 —— 管理集合、用户、查看日志
- 实时功能 —— 通过 Server-Sent Events 订阅数据变更
API 根据集合模式自动生成。在管理面板创建一个"posts"集合,CRUD 端点就自动可用了。
可扩展性
PocketBase 可以通过 Go 语言扩展:自定义路由、钩子、中间件、WebSocket。这把它从一个简单的后端即服务变成了功能完整的 API 框架。对 JavaScript/TypeScript 开发者来说,有现成的 SDK。
局限性
SQLite 不适合高并发写入场景。如果你每秒有成千上万的并发写入——请考虑 PostgreSQL。不支持水平扩展:PocketBase 就是单服务器运行。但对于 95% 的项目来说,这已经绰绰有余。
适合的项目类型
MVP 和原型、内部工具、管理后台、移动端后端、早期 SaaS 产品。所有需要快速获得可用 API 而不想搭建多余基础设施的场景。