All Projects → dodorare → crossbow

dodorare / crossbow

Licence: Apache-2.0 license
Cross-Platform Rust Toolkit for Games 🏹

Programming Languages

rust
11053 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to crossbow

Glide
Game engine for making 2d games on iOS, macOS and tvOS, with practical examples and tutorials
Stars: ✭ 353 (+341.25%)
Mutual labels:  apple, games
kotlin-plugin-generated
A Kotlin compiler plugin that annotates Kotlin-generated methods for improved coverage reports
Stars: ✭ 33 (-58.75%)
Mutual labels:  build-tool
dotAPNS
dotAPNS is a library used to send push notifications to Apple devices using Apple Push Notification service via HTTP/2 API.
Stars: ✭ 80 (+0%)
Mutual labels:  apple
airplayreceiver
Open source implementation of AirPlay 2 Mirroring / Audio protocol.
Stars: ✭ 84 (+5%)
Mutual labels:  apple
polkawallet-flutter
Replace to: https://github.com/polkawallet-io/app
Stars: ✭ 107 (+33.75%)
Mutual labels:  substrate
agario
Python clone of agar.io game, made with pygame.
Stars: ✭ 32 (-60%)
Mutual labels:  games
MSession
A simple and sophisticated session and authentication solution written in Swift
Stars: ✭ 26 (-67.5%)
Mutual labels:  apple
rmrk-substrate
Nested, conditional & Multi-resourced NFTs.
Stars: ✭ 44 (-45%)
Mutual labels:  substrate
yesbuild
A scable and extensible build system for the Web ecosystem.
Stars: ✭ 32 (-60%)
Mutual labels:  build-tool
pokerwars.io-starterbot-python
A starter bot written in python for the pokerwars.io platform. To play: pull this code, register on pokerwars.io, get your API token and play!
Stars: ✭ 37 (-53.75%)
Mutual labels:  games
autosetup
A better, faster autoconf replacement
Stars: ✭ 60 (-25%)
Mutual labels:  build-tool
WildWorld
Sandbox freestyle multiplayer game/engine in LÖVE/LUA.
Stars: ✭ 35 (-56.25%)
Mutual labels:  games
polkaswap-web
Polkaswap is a non-custodial, cross-chain AMM DEX protocol for swapping tokens based on Polkadot and Kusama relay chains, Polkadot and Kusama parachains, and blockchains directly connected via bridges. Polkaswap removes trusted intermediaries and provides the opportunity for faster trading.
Stars: ✭ 43 (-46.25%)
Mutual labels:  substrate
albumArtCreator
A simple tool to make it easy to create good looking album art
Stars: ✭ 26 (-67.5%)
Mutual labels:  apple
meteor-graphql
Compiler plugin that supports GraphQL files in Meteor
Stars: ✭ 56 (-30%)
Mutual labels:  build-tool
HandyRL
HandyRL is a handy and simple framework based on Python and PyTorch for distributed reinforcement learning that is applicable to your own environments.
Stars: ✭ 228 (+185%)
Mutual labels:  games
uno-game
🎴 An UNO Game made in Javascript
Stars: ✭ 93 (+16.25%)
Mutual labels:  games
hydra
A Substrate query node framework
Stars: ✭ 43 (-46.25%)
Mutual labels:  substrate
nft-gallery
NFT Explorer 🗺 🧭 running on Kusama and Polkadot
Stars: ✭ 281 (+251.25%)
Mutual labels:  substrate
brewfile
🍎 Brewfile to install softwares in macOS for engineers
Stars: ✭ 37 (-53.75%)
Mutual labels:  apple
Crossbow Splash Image

CI Info Crate Info API Docs Tool Crate GitHub All Releases

Cross-Platform Rust Toolkit for Games 🏹

🏹 What is Crossbow

A goal of the crossbow project is to provide a complete infrastructure for cross-platform game development in rust. In addition, the project simplifies the creation and packaging of crates for Android, iOS, and other platforms. We want to make most of our tools - engine agnostic, to help rust game developers integrate them into their games, engines, and crates.

🗂️ Project structure

Crate structure:

Name Description Status
crossbundle Command-line tool for building applications
crossbundle-install Crossbundle install command to install necessary packages
crossbundle-tools Toolkit used in crossbundle to build/pack/sign bundles
crossbundle-derive Derive macros for projects built with crossbow
crossbow-ads Plugin for advertisements 🛠
crossbow-permissions Plugin for runtime permissions 🛠
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

👁️‍🗨️ Support status

Packaging status:

Name Description Status
Android APK Default build result method.
Android AAB Supported via --aab flag.
Apple Debug IPA Default build result method. Works only on Simulator and could be run on iPhone with Dev Certificate. 🆗
Apple Release IPA Not supported yet. Crossbundle should generate xcodeproj, but user should build and sign IPA manually. 🛠

Supported game engines:

Name Description Status
Bevy Default build method. Injects ndk-glue into generated tmp lib.rs file.
Macroquad Supported via --quad flag. Works as cargo-quad-apk but with all crossbundle features.

P.S: If you don't find your engine here, open an issue! We are happy to add support for new engines.

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

🌀 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.

🌎 Hello World example

See Hello World example here.

📚 Full 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 learn more about crossbundle we recommend that you read the information below.

⚠️NOTE⚠️


For the correct work of the tool, you need to set up a development environment (ex. install some libraries and tools - such as Android SDK, Android NDK, XCode, etc). More information about how to set up the environment in the Android setup and iOS setup here.


📟 CrossBundle CLI

The crossbundle is a command-line tool that encapsulates boring stuff of Android and iOS build/packaging processes and helps mobile developers to create and maintain applications written in rust programming language.

⚙️ Config Cargo.toml Metadata

To see full Cargo.toml Metadata documentation, visit crossbundle README.

🎏 CLI options and flags

To see the complete documentation for each command/subcommand you can write -h or --help:

crossbundle -h
crossbundle build android -h
crossbundle run apple -h
crossbundle install -h
# ...

Result of crossbundle -h:

USAGE:
    crossbundle [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -c, --current-dir <CURRENT_DIR>    The current directory where to run all commands
    -h, --help                         Print help information
    -q, --quiet                        No output printed to stdout
    -v, --verbose                      A level of verbosity, and can be used multiple times
    -V, --version                      Print version information

SUBCOMMANDS:
    build      Starts the process of building/packaging/signing of the rust crate
    help       Print this message or the help of the given subcommand(s)
    install    Installs bundletool and Android Studio's sdkmanager
    log        Attach logger to device with running application
    new        Creates a new Cargo package in the given directory. Project will be ready to
               build with `crossbundle`
    run        Executes `build` command and then deploy and launches the application on the
               device/emulator

Troubleshooting

Shared library "<lib_name>" not found

If you ran into problem of missing shared library in the apk/aab - you can fix this by placing your .so file into target/<rust-triple>/<profile>/tools/libname.so. The builder will pick the library up and put it in the final package.

📅 Roadmap

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

💼 Partners

This project is part of Web3 Foundation Grants Program.

W3F Grants Badge

📑 License

Licensed under Apache-2.0 License.

FOSSA Status

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].