PocketBase
PocketBase 是一个用 Go 编写的开源后端,整个服务打包成单个可执行文件。它内置 SQLite 数据库并支持实时订阅,还自带文件与用户管理、管理后台 UI 和简洁的 REST 风格 API,适合快速搭建中小型应用后端。
过去 7 天收获 1 颗 Star
爱鲜报评分
0.0
0 人评分
62k
星数
否
中文
Go
主语言
是
活跃
45
贡献者
人工分析
EDITORIAL推荐理由
PocketBase 把数据库、认证、文件存储、实时推送和管理后台整合进一个二进制文件,部署时几乎零依赖,特别适合独立开发者和小团队快速验证产品。它既能作为开箱即用的独立服务运行,也能作为 Go 库嵌入自有业务逻辑,还支持用 JavaScript 扩展。项目采用 MIT 协议、Star 数超过 6 万,社区活跃度高,是 BaaS 领域值得关注的方案。
适用场景
- 独立开发者快速搭建 MVP 后端
- 中小型 Web/移动应用的用户认证与数据存储
- 需要实时订阅功能的应用(如聊天、协作看板)
- 内网或边缘环境下的轻量级自托管后端
- 作为 Go 项目中的嵌入式后端框架
优点
- 单文件部署,无需额外安装数据库或中间件
- 内置 SQLite、实时订阅、文件与用户管理、管理后台
- 提供 JS 与 Dart 官方 SDK,前端接入方便
- 可作为 Go 库二次开发,支持 JavaScript 扩展
- MIT 协议,可自由商用
缺点
- 尚未发布 v1.0,API 与数据格式可能不保证向后兼容
- 基于 SQLite,超大规模高并发写入场景需谨慎评估
- 仓库已迁移,原 GitHub 地址后续可能不再更新
- 出于反 LLM 垃圾提交考虑,外部 PR 暂时受限
上手难度
入门
PocketBase 是什么
PocketBase 是一个用 Go 编写的开源后端,整个服务被打包成单个可执行文件。它把数据库、认证、文件存储、实时推送和管理后台整合在一起,启动后即可获得一套完整的后端能力。
核心能力
- 嵌入式 SQLite 数据库,支持实时订阅(realtime subscriptions)
- 内置用户与文件管理
- 开箱即用的管理后台 UI
- 简洁的 REST 风格 API
- 官方 SDK:JavaScript(浏览器、Node.js、React Native)与 Dart(Web、移动端、桌面、CLI)
两种使用方式
1. 作为独立应用运行
从 Releases 页面下载对应平台的可执行文件,解压后在目录中执行:
./pocketbase serve
预编译版本默认启用 JS VM 插件,可以用 JavaScript 扩展后端逻辑。
2. 作为 Go 框架使用
PocketBase 同时是一个普通的 Go 库,可以编写自定义业务逻辑,最终仍产出单个可移植的可执行文件。最小示例:
package main
import (
"log"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
)
func main() {
app := pocketbase.New()
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
se.Router.GET("/hello", func(re *core.RequestEvent) error {
return re.String(200, "Hello world!")
})
return se.Next()
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
初始化依赖并启动:
go mod init myapp && go mod tidy
go run main.go serve
构建静态链接的可执行文件:
CGO_ENABLED=0 go build
适用人群
- 想快速搭建 MVP 的独立开发者
- 需要自托管轻量后端的团队
- 希望在 Go 项目中直接嵌入后端能力的工程师
注意事项
- 项目仍在活跃开发中,v1.0 之前不保证完全向后兼容
- 仓库已迁移至新地址,后续更新请关注官方公告
- 出于反垃圾提交考虑,外部 PR 暂时关闭,建议先开 issue 讨论
更多文档与示例请访问官网 pocketbase.io。
评论
- 暂无评论,来写第一条吧。