文章目录PocketBase一个文件搞定后端1、 这东西解决什么问题2、 两种用法3、 核心能力4、 适合什么场景5、 需要注意的PocketBase一个文件搞定后端pocketbase 在 GitHub 上已经拿到 59,214 Star 了。这是一个用 Go 写的开源后端核心卖点就一句话整个后端压缩成一个可执行文件下载就能跑。数据库、文件管理、用户认证、管理后台、API 接口全在里面了。1、 这东西解决什么问题做过后端的人都知道启动一个新项目有多烦。装数据库配 ORM写用户注册登录搭管理后台处理文件上传对接 WebSocket 做实时推送。每一步都不难但加在一起就是一两天的活。PocketBase 的思路是把这些全部内置。SQLite 嵌在进程里不需要单独部署数据库。用户管理是现成的文件存储是现成的Admin 面板开箱即用REST API 自动根据数据表生成。你要做的就是定义数据结构然后写业务逻辑。2、 两种用法第一种是直接下载预编译的可执行文件。从 Release 页面拿到对应平台的二进制解压终端里敲./pocketbase serve服务就起来了。Admin 面板在浏览器里打开就能用数据表、API、用户系统全部就绪。第二种是当 Go 库来用。PocketBase 本身是一个标准的 Go 包你可以 import 进自己的项目在上面写自定义路由和业务逻辑最后编译成一个单独的二进制文件。packagemainimport(loggithub.com/pocketbase/pocketbasegithub.com/pocketbase/pocketbase/core)funcmain(){app:pocketbase.New()app.OnServe().BindFunc(func(se*core.ServeEvent)error{se.Router.GET(/hello,func(re*core.RequestEvent)error{returnre.String(200,Hello world!)})returnse.Next()})iferr:app.Start();err!nil{log.Fatal(err)}}十几行代码一个带自定义接口的后端就跑起来了。编译的时候CGO_ENABLED0 go build出来的二进制是静态链接的扔到任何 Linux 机器上直接执行不依赖任何运行时。3、 核心能力内置的 SQLite 数据库支持实时订阅。前端可以通过 SDK 监听数据变化后端数据一更新前端立刻收到推送不需要自己写 WebSocket 逻辑。文件管理直接内置。上传、存储、访问控制都有了不用再接 S3 或者自己写上传接口。用户认证也是现成的。注册、登录、密码重置、OAuth 第三方登录这些常见需求不需要从零实现。Admin 面板是一个完整的 Web UI在里面可以管理数据、查看日志、配置系统。对于内部工具或者后台管理系统来说这个面板本身就够用了。REST API 是自动生成的。你定义好数据表结构PocketBase 就会暴露对应的增删改查接口参数校验、分页、排序、过滤全部内置。官方提供了 JavaScript 和 Dart 两个 SDK。JavaScript 那个支持浏览器、Node.js 和 React NativeDart 那个覆盖 Web、移动端、桌面端和 CLI。4、 适合什么场景个人项目和小型产品的后端。不需要运维数据库不需要部署一堆服务一个文件传上去就能跑。内部工具和管理后台。Admin 面板加上自动生成的 API搭一个数据管理后台可能就半小时的事。需要快速验证想法的场景。原型阶段不想在基础设施上花时间PocketBase 能让你把精力集中在业务本身。5、 需要注意的PocketBase 目前还在活跃开发中v1.0.0 之前不保证完全向后兼容。升级版本的时候可能需要处理一些 breaking changes。底层数据库是 SQLite单机部署。如果你的场景需要水平扩展或者高并发写入这可能不是最合适的选择。但对于大多数中小型应用来说SQLite 的性能够用了。构建目标目前覆盖了主流平台Linux、macOS、Windows 的主要架构都支持包括 arm64 和一些特殊架构如 riscv64、s390x。项目是 MIT 协议可以自由使用包括商业用途。S、Windows 的主要架构都支持包括 arm64 和一些特殊架构如 riscv64、s390x。项目是 MIT 协议可以自由使用包括商业用途。