Rust: Difference between revisions

From KDE Community Wiki
(Shamelessly adding my own blog post)
(cxx-qt, autocxx)
Line 72: Line 72:
= Useful components for KDE development =
= Useful components for KDE development =
==== C/C++ <-> Rust bridging ====
==== C/C++ <-> Rust bridging ====
* [https://github.com/rust-qt/ritual ritual] - crate generator to use C++/Qt libraries from Rust
* [https://github.com/KDAB/cxx-qt/ KDAB's cxx-qt] — Safe Rust bindings for Qt
* [https://github.com/rust-lang/rust-bindgen bindgen] - Rust binding generator for C libraries
* [https://github.com/rust-qt/ritual ritual] — Crate generator to use C++/Qt libraries from Rust
* [https://github.com/eqrion/cbindgen cbindgen] - C binding generator for Rust crates
* [https://github.com/rust-lang/rust-bindgen bindgen] Rust binding generator for C libraries
* [https://cxx.rs/ cxx] - Crate that generates safe binding code between rust and C++
* [https://github.com/eqrion/cbindgen cbindgen] C binding generator for Rust crates
* [https://cxx.rs/ cxx] Crate that generates safe binding code between rust and C++
* [https://github.com/google/autocxx Google's autocxx] — Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

Revision as of 14:16, 26 May 2022

The Rust Programming Language logo

Rust in KDE

Communication

Telegram: https://t.me/kderust

IRC: #kde-rust on Libera Chat

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

Angelfish — Mobile-friendly webbrowser

Rust code is used in the ad blocker.

Repo: https://invent.kde.org/plasma-mobile/angelfish

KDE tools for Rust

Rust Qt Binding Generator logo

Rust Qt Binding Generator

To use Rust code from Qt and QML code

Repo: https://invent.kde.org/sdk/rust-qt-binding-generator

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 (unmaintained)

To work on Rust code & projects in KDevelop.

Repo: https://invent.kde.org/unmaintained/kdev-rust

KDevelop Cargo Support Plugin (unmaintained)

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

Repo: https://invent.kde.org/unmaintained/kdev-cargo

Ideas to use Rust

Dbus daemons that could be implemented in Rust and are self-contained :

  • solid
  • baloo
  • kioslave
  • Core of of Gui application in Qt

Documentation

Ferris the crab — Rust mascot

Rust Bookshelf

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

  • KDAB's cxx-qt — Safe Rust bindings for Qt
  • ritual — Crate generator to use C++/Qt libraries from Rust
  • bindgen — Rust binding generator for C libraries
  • cbindgen — C binding generator for Rust crates
  • cxx — Crate that generates safe binding code between rust and C++
  • Google's autocxx — Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers