Rinf: Flutter 中的 Rust

Rust 用于原生业务逻辑,Flutter 用于灵活美观的 GUI

Preview

Rinf 是一个生产级框架,用于使用 Flutter 和 Rust 创建美观且高性能的跨平台应用程序,功能齐全。只需将此框架添加到您的应用程序项目中,即可开始一起编写 Flutter 和 Rust!

? 示例

访问在 Web 上运行的演示,体验 Flutter 和 Rust 组合带来的流畅和愉悦。您也可以深入了解示例代码

?️ 平台支持

Flutter 可用的所有平台都已测试并受支持。具有挑战性的构建设置会自动由此框架处理。

  • ✅ Linux: 已测试并支持
  • ✅ Android: 已测试并支持
  • ✅ Windows: 已测试并支持
  • ✅ macOS: 已测试并支持
  • ✅ iOS: 已测试并支持
  • ✅ Web:已测试并支持

? 优势

  • 真正简单:您的应用程序设置只需一两分钟即可完成。没有任何其他解决方案能提供如此便捷的体验。
  • 高效:所有通信仅通过本地 FFI 进行。没有可能导致性能开销的 WebViews、Web 服务器、隐藏线程或不必要的内存复制。此设置充当 Dart 和 Rust 的一个非常薄的包装器。
  • 最小化:这并非一个臃肿的框架,不需要您安装过多的依赖项并使用复杂的 CLI 命令。只需使用您喜欢的 Flutter 和 Rust 库专注于您的代码。
  • 可扩展:在 Dart 和 Rust 之间创建数百甚至数千个消息 API 感觉流畅而干净。此外,您还可以灵活地利用任意数量的 Rust 库 crate,包括您可能正在处理的那些。
  • 高级接口:无需处理敏感的构建文件,无需担心内存安全。继续使用您熟悉的 Dart 和 Rust。
  • 低级控制:虽然复杂的事情都隐藏在表面之下,但您可以自由修改底层逻辑,例如并发或调试功能。没有任何隐藏机制会阻止您的理解。
  • 维护良好:由于主分支保护规则,我们的自动化工作流(包括构建测试)始终保持通过。此外,外部依赖项的数量尽可能少,并且文档经过精心组织。
  • 异步交互:Rust 操作永远不会阻塞 Flutter 的主线程,因为它们是在单独的线程池中生成的。
  • 便捷调试:所有调试功能均默认提供,无需处理浏览器或移动模拟器。此外,整个 Rust 逻辑会在 Dart 的热重载时自动重新启动。
  • 可靠:该框架作为 Dart 和 Rust 之间的直接链接,无需复杂的代码生成机制。每个组件都得到庞大社区的支持,确保高度重视安全性。您可以轻松地向您的团队保证稳定性,因为该框架的底层概念相当简单。

? 为什么使用 Flutter?

虽然 Rust 是用于高性能原生编程的强大语言,但其用于构建图形用户界面的生态系统远未成熟。尽管 Rust 已经有一些 GUI 框架,但它们无法与 Flutter 提供的广泛支持和流畅的开发体验相媲美。只有 Flutter 才能从单个代码库编译到所有 6 个主要平台。

Flutter 是一个强大且通用的框架,因构建具有精美用户界面的跨平台应用程序而广受欢迎。它提供了声明式模式、精美的 Widgets、热重载、便捷的调试工具以及开箱即用的用户界面专用软件包。

? 为什么使用 Rust?

虽然 Dart 作为用于 GUI 应用程序的出色面向对象语言表现出色,但其非原生垃圾回收可能无法始终满足苛刻的性能要求,并且可能缺少高级数据处理包。这时 Rust 就派上用场了,它提供了比 Dart 快约 2-40 倍的惊人速度优势,同时还能利用多线程和各种实现任务的 crate。

Rust 赢得了忠实的追随者,在 Stack Overflow 上被评为最受欢迎的编程语言。由于零成本抽象理念,其原生性能确保了高生产力。许多开发人员预计 Rust 未来可能会取代 C++。Rust 的简洁性、内存安全性、在各种场景下的卓越性能、充满活力的社区和强大的工具支持,都对其日益增长的受欢迎程度做出了贡献。

? 文档

查看文档,了解使用此工具所需的一切。

? 贡献

如果 Rinf 对您有所帮助,请考虑给我们的GitHub 仓库点赞,并给我们的Pub 包点赞。您还可以通过传播和在线分享此框架来支持我们。

我们感谢您对本项目开发的贡献!我们始终欢迎讨论和 Pull Requests,因此请随时在我们的 GitHub 仓库中留下您的想法或意见。

GitHub contributors

GitHub

查看 Github