Stay organized with collections
Save and categorize content based on your preferences.
Overview
Rust is a modern systems programming language focused on performance and safety,
particularly memory safety. Rust is increasingly important in the Android
ecosystem as a safer alternative to C/C++ for developing critical system
components, offering improved security and stability.
This page guides you through setting up Android Studio for Platform (ASfP) to
support Rust development within your Android Open Source Project (AOSP)
projects.
Prerequisites
ASfP Installed: Verify you have ASfP installed and running.
Platform checkout: You need a working AOSP platform checkout on your
machine.
Enabling Rust support
Here's the step-by-step process to get Rust support working in your ASfP
project:
Enable Rust
When creating a new project in the setup wizard, simply check the
box for Rust:
Rust checkbox in new project setup wizard.
For existing projects, navigate to your .asfp-project config and add
rust to other_languages:
other_languages:-cpp-rust```
<figure>
<img src="/studio/platform/images/1-modify_asfp_project_languages.png" alt="Modifying the .asfp-project file to add rust to other_languages" class="screenshot">
<figcaption>Adding Rust support in the <code>.asfp-project</code> file.</figcaption></figure>
Sync your project:
After performing the previous steps, you need to trigger a project sync
to ensure that all changes are applied and the IDE recognizes the Rust
project: Go to File > Sync Project.
Verifying success
After completing these steps:
You should see rust-project.json in your project view (under the source
iml). This file is generated by Soong during analysis and symlinked to the
repo root, which is necessary for LSP to provide language services. DO
NOT edit this file directly; instead, re-sync to let Soong handle it.
As a reminder, double check that rust is present under other_languages
in your .asfp-project config.
Ensure that rust-project.json has been generated.
You should see Rust-specific features (described and shown below) enabled in
your IDE.
Key Rust IDE features
Code completion: Get intelligent suggestions for Rust code, including
items from other modules.
Code completion suggesting items from a different Rust module.
Navigation: Quickly jump to definitions and find usages of Rust symbols
across your project.
Navigating to the definition of a Rust symbol.Finding all usages of a Rust symbol.
Tooltips: Hover over symbols to see type information and documentation.
Tooltip showing type information for a Rust symbol from another module.
Inlay hints: View type information and other contextual hints directly
in the editor.
Inlay hints showing type information within the code.
Structure view: Navigate the structure of your Rust files using the
Structure tool window (View > Tool Windows > Structure).
The structure tool window showing the outline of a Rust file.
Refactoring: Safely rename symbols and have all usages updated.
Renaming a Rust symbol and updating all its references.
Real-time analysis: Get instant feedback on errors and warnings in your
Rust code.
IDE showing real-time errors and warnings in Rust code.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-09-04 UTC.
[null,null,["Last updated 2025-09-04 UTC."],[],[],null,["Overview\n\nRust is a modern systems programming language focused on performance and safety,\nparticularly memory safety. Rust is increasingly important in the Android\necosystem as a safer alternative to C/C++ for developing critical system\ncomponents, offering improved security and stability.\n\nThis page guides you through setting up Android Studio for Platform (ASfP) to\nsupport Rust development within your Android Open Source Project (AOSP)\nprojects.\n\nPrerequisites\n\n- **ASfP Installed:** Verify you have ASfP installed and running.\n- **Platform checkout:** You need a working AOSP platform checkout on your machine.\n\nEnabling Rust support\n\nHere's the step-by-step process to get Rust support working in your ASfP\nproject:\n\n1. **Enable Rust**\n\n - When creating a **new project** in the setup wizard, simply check the box for Rust:\n\n Rust checkbox in new project setup wizard.\n - For existing projects, navigate to your `.asfp-project` config and add `rust` to `other_languages`:\n\n other_languages:\n - cpp\n - rust\n ```\n\n \u003cfigure\u003e\n \u003cimg src=\"/studio/platform/images/1-modify_asfp_project_languages.png\" alt=\"Modifying the .asfp-project file to add rust to other_languages\" class=\"screenshot\"\u003e\n \u003cfigcaption\u003eAdding Rust support in the \u003ccode\u003e.asfp-project\u003c/code\u003e file.\u003c/figcaption\u003e\n \u003c/figure\u003e\n\n\u003c!-- --\u003e\n\n1. **Sync your project:**\n\n - After performing the previous steps, you need to trigger a project sync to ensure that all changes are applied and the IDE recognizes the Rust project: Go to **File \\\u003e Sync Project**.\n\nVerifying success\n\nAfter completing these steps:\n\n- You should see `rust-project.json` in your project view (under the source\n iml). This file is generated by Soong during analysis and symlinked to the\n repo root, which is necessary for LSP to provide language services. **DO\n NOT** edit this file directly; instead, re-sync to let Soong handle it.\n\n As a reminder, double check that `rust` is present under `other_languages`\n in your `.asfp-project` config.\n Ensure that `rust-project.json` has been generated.\n- You should see Rust-specific features (described and shown below) enabled in\n your IDE.\n\nKey Rust IDE features\n\n- **Code completion:** Get intelligent suggestions for Rust code, including\n items from other modules.\n\n Code completion suggesting items from a different Rust module.\n\n \u003cbr /\u003e\n\n- **Navigation:** Quickly jump to definitions and find usages of Rust symbols\n across your project.\n\n Navigating to the definition of a Rust symbol. Finding all usages of a Rust symbol.\n\n \u003cbr /\u003e\n\n- **Tooltips:** Hover over symbols to see type information and documentation.\n\n Tooltip showing type information for a Rust symbol from another module.\n\n \u003cbr /\u003e\n\n- **Inlay hints:** View type information and other contextual hints directly\n in the editor.\n\n Inlay hints showing type information within the code.\n\n \u003cbr /\u003e\n\n- **Structure view:** Navigate the structure of your Rust files using the\n **Structure** tool window (View \\\u003e Tool Windows \\\u003e Structure).\n\n The structure tool window showing the outline of a Rust file.\n\n \u003cbr /\u003e\n\n- **Refactoring:** Safely rename symbols and have all usages updated.\n\n Renaming a Rust symbol and updating all its references.\n\n \u003cbr /\u003e\n\n- **Real-time analysis:** Get instant feedback on errors and warnings in your\n Rust code.\n\n IDE showing real-time errors and warnings in Rust code.\n\n \u003cbr /\u003e"]]