SoK/2022/StatusReport/Ayush Singh

Rust Wrapper of KConfig

KDE Projects are currently predominantly written in C++ and Python since the bindings for other projects are simply not present or are not idiomatic to use. I am working on Rust bindings for KConfig KDE Framework. The bindings can be found here. As a consequence of this project, I ended up contributing upstream to qmetaobject and became a collaborator in that project.


  • Jos van den Oever

Features Available

The bindings for the following parts are pretty much complete and have all the features:

Some work has already been done for KConfigXT like feature, but that is still in the early stages and not ready to be used yet.


Published Crates

The following are the links to the crates that have been published:

Blog Posts


All the commits are made by me in the kconfig-rs repository, so I will not be listing them individually.

I also ended up contributing heavily to qmetaobject. Here is a list of pull requests that were merged in qmetaobject:

  1. Add isNull() wrapper for QVariant
  2. Refactor QVariant
  3. Implement QMetaType for QStringList
  4. Add Qt::GlobalColor enum wrapper
  5. Implement Add and AddAssign for QString
  6. Add generic iterator for QList
  7. Add methods and conversions for QString
  8. Added QVariantMap Type
  9. Implemented From for QStringList
  10. Added QStandardPaths::StandardLocation enum

Finally, I also got a pull request merged in KConfig: Make KConfig::mainConfigName() public


This page was last edited on 17 April 2022, at 06:45. Content is available under Creative Commons License SA 4.0 unless otherwise noted.