rust-mac-app-examples

Examples of and templates for running Rust in Cocoa apps on the Mac

  • Owner: kattrali/rust-mac-app-examples
  • Platform:
  • License:: BSD 2-Clause "Simplified" License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Using Rust in Cocoa apps

Examples for working with the Objective-C runtime from Rust, with a companion
blog post about the
rationale behind the setup.

Each example is annotated and can be run using cargo run or using the
specialized instructions below, if any.

Examples

  1. Creating Objective-C objects from Rust:
    Creates an object and sends it a message

  2. Displaying a Cocoa Window:
    Creates and presents a Cocoa app with a single window, leveraging the cocoa
    crate

  3. Packaging a macOS app:
    Compiles and runs a Rust binary as a part of a macOS app. The Rust binary is
    launched as the primary process and handles presenting the user interface.
    Run the application by opening the Xcode project in the app/ directory of
    the example and using the Run button.

  4. Wrapping Cocoa APIs:
    Creates a custom interface in Rust to accessing Cocoa classes (somewhat)
    safely, or at least without unsafe blocks

  5. Declaring a new Objective-C class from Rust:
    Creates and registers an Objective-C class with the runtime from Rust, as
    well as sending messages to an instance from both Rust and Objective-C

  6. Include a Rust library in a Cocoa app:
    Create a static library in Rust, and bundles/links it with a mac app. The mac
    app target in Xcode depends on an external target which is the Rust library,
    and the C header for the Rust library is used to invoke Rust functions from
    Swift. Run the application by opening the Xcode project and using the Run
    button.

Main metrics

Overview
Name With Ownerkattrali/rust-mac-app-examples
Primary LanguageRust
Program languageRust (Language Count: 4)
Platform
License:BSD 2-Clause "Simplified" License
所有者活动
Created At2016-11-17 22:51:22
Pushed At2021-04-10 18:56:59
Last Commit At2018-08-07 09:55:07
Release Count0
用户参与
Stargazers Count263
Watchers Count6
Fork Count19
Commits Count3
Has Issues Enabled
Issues Count3
Issue Open Count3
Pull Requests Count1
Pull Requests Open Count1
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private