(kdev-cargo is now a KDE project)
(More doc links)
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
== KDE Projects involving Rust ==
+
[[File:Rust-logo-512x512-blk.png|thumbnail|right|The Rust Programming Language logo]]
 +
= Rust in KDE =
 +
== KDE projects that use Rust ==
  
=== Rust Qt Binding Generator ===
+
==== Ikona — an icon preview utility for KDE Plasma ====
 +
 
 +
Repo: https://invent.kde.org/kde/ikona
 +
 
 +
==== ActivityDesk — a Qt/KDE-centric ActivityPub (Mastodon) client ====
 +
 
 +
Repo: https://invent.kde.org/jalcine/activitydesk
 +
 
 +
== KDE tools for Rust ==
 +
[[File:Rust-kde.png|thumbnail|right|Rust Qt Binding Generator logo]]
 +
==== Rust Qt Binding Generator ====
 
To use Rust code from Qt and QML code
 
To use Rust code from Qt and QML code
  
 
Repo: https://cgit.kde.org/rust-qt-binding-generator.git/about/
 
Repo: https://cgit.kde.org/rust-qt-binding-generator.git/about/
  
=== KDevelop Rust Language Support Plugin ===
+
==== Kate LSP Plugin ====
To develop Rust code & projects in KDevelop.
+
Rust Language Server can be used in Kate via the LSP plugin.
 +
 
 +
Repo: https://invent.kde.org/kde/kate/-/tree/master/addons%2Flspclient
 +
 
 +
==== KDevelop Rust Language Support Plugin ====
 +
To work on Rust code & projects in KDevelop.
  
 
Repo: https://cgit.kde.org/kdev-rust.git/about/
 
Repo: https://cgit.kde.org/kdev-rust.git/about/
  
=== KDevelop Cargo Support Plugin ===
+
==== KDevelop Cargo Support Plugin ====
 
To manage, build and run Rust packages (crates) with Cargo.
 
To manage, build and run Rust packages (crates) with Cargo.
  
 
Repo: https://cgit.kde.org/kdev-cargo.git/about/
 
Repo: https://cgit.kde.org/kdev-cargo.git/about/
  
=== Kate Rust Code Completion Plugin ===
+
= Documentation =
To edit Rust code in Kate.
+
[[File:Cuddlyferris.png|thumbnail|right|Ferris the crab — Rust mascot]]
 
+
==== Rust Documentation Hub ====
Repo: https://cgit.kde.org/kate.git/tree/addons/rustcompletion
+
Contains multiple knowledge bases, of which the most useful for beginners are probably [https://doc.rust-lang.org/book/ The Book] and [https://doc.rust-lang.org/stable/rust-by-example/ Rust By Example].
 
 
 
 
== External ==
 
 
 
=== Projects ===
 
  
* [https://github.com/rust-qt/cpp_to_rust cpp_to_rust] - usinc C++/Qt from Rust
+
Link: https://doc.rust-lang.org/
  
=== Documentation ===
+
==== Tutorials and guides ====
* [https://doc.rust-lang.org/ doc.rust-lang.org] - Rust Documentation Hub site
+
* [https://www.youtube.com/channel/UC0yCXVwW6FdDQGYA-3OWXxw YouCodeThings] — short video tutorials about programming in Rust
 +
* [https://blog.devolutions.net/2018/06/insider-series-using-rust-code-in-a-cc-project-with-cmake Using Rust Code in a C/C++ Project with CMake]
 +
* [https://github.com/nrc/r4cppp Rust for C++ programmers]
 +
* [https://www.breakdown-notes.com/make/load/rust_cs_canvas/true Rust Breakdown Notes]
 +
* [https://locka99.gitbooks.io/a-guide-to-porting-c-to-rust/content/ A Guide to Porting C/C++ to Rust]
 +
* [https://rust-lang.github.io/rust-bindgen/ bindgen docs]
 +
* [https://michael-f-bryan.github.io/rust-ffi-guide/ Using unsafe for Fun and Profit] — tutorial for CMake-based Qt GUI using Rust library for the business logic
 +
* [https://os.phil-opp.com Writing an OS in Rust] — a series of tutorials about "close to the metal" programming in Rust
  
=== Tutorials ===
+
= Useful components for KDE development =
* [https://michael-f-bryan.github.io/rust-ffi-guide/ Using unsafe for Fun and Profit] - tutorial for CMake-based Qt GUI using Rust library for the business logic
+
==== C/C++ <-> Rust bridging ====
 +
* [https://github.com/rust-qt/ritual ritual] - crate generator to use C++/Qt libraries from Rust
 +
* [https://github.com/rust-lang/rust-bindgen bindgen] - Rust binding generator for C libraries
 +
* [https://github.com/eqrion/cbindgen cbindgen] — C binding generator for Rust crates

Revision as of 17:52, 1 April 2020

The Rust Programming Language logo

Rust in KDE

KDE projects that use Rust

Ikona — an icon preview utility for KDE Plasma

Repo: https://invent.kde.org/kde/ikona

ActivityDesk — a Qt/KDE-centric ActivityPub (Mastodon) client

Repo: https://invent.kde.org/jalcine/activitydesk

KDE tools for Rust

Rust Qt Binding Generator logo

Rust Qt Binding Generator

To use Rust code from Qt and QML code

Repo: https://cgit.kde.org/rust-qt-binding-generator.git/about/

Kate LSP Plugin

Rust Language Server can be used in Kate via the LSP plugin.

Repo: https://invent.kde.org/kde/kate/-/tree/master/addons%2Flspclient

KDevelop Rust Language Support Plugin

To work on Rust code & projects in KDevelop.

Repo: https://cgit.kde.org/kdev-rust.git/about/

KDevelop Cargo Support Plugin

To manage, build and run Rust packages (crates) with Cargo.

Repo: https://cgit.kde.org/kdev-cargo.git/about/

Documentation

Ferris the crab — Rust mascot

Rust Documentation Hub

Contains multiple knowledge bases, of which the most useful for beginners are probably The Book and Rust By Example.

Link: https://doc.rust-lang.org/

Tutorials and guides

Useful components for KDE development

C/C++ <-> Rust bridging

  • ritual - crate generator to use C++/Qt libraries from Rust
  • bindgen - Rust binding generator for C libraries
  • cbindgen — C binding generator for Rust crates

Content is available under Creative Commons License SA 4.0 unless otherwise noted.