crossbow 0.1.5

Cross-Platform Rust Toolkit for Games 🏹
Documentation

Crossbow Splash Image

CI Info Crate Info Documentation Crossbundle Crate Apache 2.0 FOSSA Status GitHub Stars

What is Crossbow?

The crossbow project aims to provide a complete toolkit for cross-platform game development in Rust - from project creation to publishing. In addition, the project simplifies the creation, packaging, and signing of Android and iOS applications. We want to make most of our tools - engine agnostic to help rust game developers integrate them into their engines or games.

Why Crossbow?

There are already cargo-apk, cargo-mobile, cargo-xcode, etc. - why do I need another packaging tool?

Project crossbow is not only a packaging tool for Android and iOS - it's a toolkit. With crossbundle-tools you can customize and create new commands; with crossbundle you can create native .apk/.aab without any Java or setup Gradle project with fancy Crossbow Android plugins (iOS in near future); with crossbow-android you can write your own Android plugins in Java/Kotlin.

Design Goals

  • Customizable: Create new commands with available tools.
  • Simple: Easy to start but flexible for strong devs.
  • Capable: It's possible to build plain .apk/.aab or .app/.ipa; or with help of Gradle/XCode.
  • Rust: Don't leave your Rust code - almost everything can be configured from Cargo.toml.

🛠 Installation

To install crossbundle, run:

cargo install --git=https://github.com/dodorare/crossbow crossbundle

See installation documentation for more details on how to setup environment on your platform.

🗂️ Project structure

Crossbundle crates:

Name Description Status
crossbundle Command-line tool for building applications.
crossbundle-tools Toolkit used in crossbundle to build/pack/sign bundles.

Crossbow Plugins:

Name Description Status
crossbow-admob Google AdMob Plugin for Android. 🆗
crossbow-play-billing Google Play Billing for Android. 📝
crossbow-play-games-sdk Google Play Games Sdk for Android. 📝

Helper crates:

Name Description Status
android-tools-rs Android-related tools for building and developing application.
android-manifest-rs AndroidManifest serializer and deserializer for Rust.
apple-bundle-rs AppleBundleResources serializer and deserializer for Rust.

✅ = Works and tested — 🆗 = Works but may contain bugs — 🛠 = Under development — 📝 = Planned

📚 Documentation

To learn how to run an example project on your own, build, test, and start using crossbow - read our full documentation here.

If you want to start development right away - see our Hello World example here.

If you want learn more about crossbundle we recommend that you read it's README here.

📅 Roadmap

Check out our ROADMAP for a better understanding of what we are doing right now and what planned.

✌️ Thanks and Alternatives

A lot of functionality was inspired by godot, cargo-apk, cargo-mobile.

Also, this project initially funded by Web3 Foundation Grants Program. Big cheers to them!

📑 License

Licensed under Apache-2.0 License.

FOSSA Status