trailbaseio/trailbase

GitHub: trailbaseio/trailbase

基于 Rust 和 SQLite 构建的开源自托管 Firebase 替代方案,以单一可执行文件提供亚毫秒级延迟的完整后端服务。

Stars: 5095 | Forks: 158

TrailBase logo

一个开源、亚毫秒级、 单可执行文件的 Firebase 替代品,提供类型安全的 REST 和实时 API、 多数据库、WebAssembly 运行时、地理空间支持、SSR、身份验证和管理 UI,基于 Rust、SQLite 和 Wasmtime 构建。

通过更少的组件来简化架构:一个易于自托管、单可执行文件、 可扩展的后端,适用于您的移动端、Web 或桌面应用程序。 亚毫秒级的延迟消除了对专用缓存的需求,不再有 过期或不一致的数据。

Build Status License - OSL 3.0 Status - Alpha

# TrailBase

Admin UI

在线体验 demo
Email: admin@localhost
password: secret

有关更多背景信息、文档和实时 demo,请访问网站: [trailbase.io](https://trailbase.io)。 有问题或想法? - 请查看 [FAQ](https://trailbase.io/reference/faq/) 或联系我们。 如果您喜欢 TrailBase 或想持续关注,请考虑留下一个 ⭐🙏。 ## 项目结构与发布 此仓库包含了构成 TrailBase 的所有组件,包括 服务器、客户端库、测试、文档和示例。 只有 [benchmarks](https://github.com/trailbaseio/trailbase-benchmark) 由于 其外部依赖而单独存放。 预编译的二进制文件可作为 [GitHub releases](https://github.com/trailbaseio/trailbase/releases/) 用于 Linux、MacOS 和 Windows,或者使用 [Docker 镜像](https://hub.docker.com/r/trailbase/trailbase)。 各种语言的客户端包可通过以下方式获取: - [JavaScript/TypeScript](https://www.npmjs.com/package/trailbase) - [Dart/Flutter](https://pub.dev/packages/trailbase) - [Rust](https://crates.io/crates/trailbase-client) - [C#/.Net](https://www.nuget.org/packages/TrailBase/) - [Swift](https://github.com/trailbaseio/trailbase/tree/main/client/swift/trailbase) - [Kotlin](https://mvnrepository.com/artifact/io.trailbase/trailbase-client) - [Go](https://github.com/trailbaseio/trailbase/tree/main/client/go/trailbase) - [Python](https://pypi.org/project/trailbase/) ## 快速入门 TrailBase 是一个**单一可执行文件**,因此非常易于 [部署](https://trailbase.io/getting-started/install/)。 您只需下载适用于您系统(MacOS、Linux 或 Windows)的相应预编译 [GitHub release](https://github.com/trailbaseio/trailbase/releases/) 包, 解压并运行该可执行文件,而无需 担心依赖项或共享库版本偏差问题。 如果您想更快速地上手,可以使用以下命令安装 TrailBase: ``` # Linux & MacOS curl -sSL https://trailbase.io/install.sh | bash # Windows iwr https://trailbase.io/install.ps1 | iex ``` 或者,使用 Docker 镜像运行 TrailBase: ``` alias trail=' mkdir -p traildepot && \ docker run \ -p 4000:4000 \ -e ADDRESS=0.0.0.0:4000 \ --mount type=bind,source="$PWD"/traildepot,target=/app/traildepot \ trailbase/trailbase /app/trail' ``` 然后执行 `trail help` 检查是否已正确安装,并列出所有 可用的命令行选项。 要在 `localhost:4000` 上启动服务器,请运行: ``` trail run ``` 首次启动时,将引导创建一个 `./traildepot` 文件夹,创建一个管理员 用户,并将其凭据打印到终端上。 之后在浏览器中打开 [http://localhost:4000/\_/admin/](http://localhost:4000/_/admin/) 并使用该凭据登录管理面板。 如果您想安装身份验证 UI,只需运行: ``` trail components add trailbase/auth_ui ``` ,该命令将在 `./traildepot/wasm` 中添加一个 WASM 组件,暴露额外的 UI 端点,例如 [http://localhost:4000/\_/auth/login](http://localhost:4000/_/auth/login)。 ## 构建 如果您已安装所有必要的构建依赖项(Rust、node.js、geos、 protobuf、pnpm),则可以通过运行以下命令来构建 TrailBase: ``` # Windows only: make sure to enable symlinks (w/o `mklink` permissions for your # user, git will fall back to copies). git config core.symlinks true && git reset --hard # Download necessary git sub-modules. git submodule update --init --recursive # Install Javascript dependencies first. Required for the next step. pnpm install # Build the executable. Adding `--release` will yield a more optimized binary # but slow builds significantly. cargo build --bin trail ``` 或者,如果您想构建 Docker 镜像或不想处理 构建依赖项,您可以直接运行: ``` # Download necessary git sub-modules. git submodule update --init --recursive # Build the container as defined in `Dockerfile`. docker build . -t trailbase ``` ## 许可证 TrailBase 是一款遵循 [Open Software License 3.0 (OSL-3.0)](https://opensource.org/licenses/OSL-3.0) 条款的自由软件。 其客户端库采用宽松的 [Apache-2.0](https://opensource.org/license/apache-2-0) 双重许可。 我们选择 OSL-3.0 而不是其他更知名的 copyleft 许可证,是因为它对 “衍生作品”的定义更窄,**仅**涵盖对 TrailBase 本身的修改。 这意味着您的应用程序原始代码**不受** OSL-3.0 的 copyleft 条款约束。无论您是通过 网络连接(例如 Web、移动端、其他服务等),提供静态资源, 使用运行时编写自定义服务器端逻辑,还是将 TrailBase 作为 框架,这都是适用的。 这种有限的范围类似于 GPL 的 classpath 或 LGPL 的[链接 例外](https://en.wikipedia.org/wiki/GPL_linking_exception)。 其目的是允许在 TrailBase 之上及其周围进行构建,而不会 将其任何条款延伸到您的原创作品上,同时确保修复 和改进能够回馈社区。 这些是我们的初衷 - 我们觉得有必要明确表达出来, 因为许可问题比较棘手,而且我们不是律师。 令人感激的是,该许可证的作者提供了更多 [解释](https://rosenlaw.com/OSL3.0-explained.htm)。 如果您有任何疑虑,请联系我们。 如果您需要 [例外](https://www.gnu.org/philosophy/selling-exceptions.html),请通过 contact@trailbase.io 联系我们。 ## 资金 本项目通过 [NGI Zero Core](https://nlnet.nl/core) 获得资金,这是一个 由 [NLnet](https://nlnet.nl) 在 欧盟委员会的 [Next Generation Internet](https://ngi.eu) 计划的资金支持下设立的基金。 请在我们的 [NLnet 项目页面](https://nlnet.nl/project/Trailbase/) 了解更多。

NLnet foundation logo NGI Zero Logo

标签:AI工具, BaaS, Firebase替代, MITM代理, REST API, Rust, SQLite, SSR, TrailBase, Wasmtime, WebAssembly, Web后端, 亚毫秒级, 内置身份验证, 单可执行文件, 单文件部署, 可视化界面, 后端即服务, 地理空间, 多数据库, 实时订阅, 开源, 扩展运行时, 无缓存架构, 服务端渲染, 权限管理, 桌面端后端, 模型越狱, 移动端后端, 空间数据, 管理后台UI, 类型安全API, 网络流量审计, 自托管, 请求拦截, 超低延迟, 通知系统