SoK/2022/StatusReport/Ayush Singh: Difference between revisions

From KDE Community Wiki
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 2: Line 2:
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 [https://invent.kde.org/oreki/kconfig-rs here].
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 [https://invent.kde.org/oreki/kconfig-rs here].
As a consequence of this project, I ended up contributing upstream to [https://github.com/woboq/qmetaobject-rs qmetaobject] and became a collaborator in that project.
As a consequence of this project, I ended up contributing upstream to [https://github.com/woboq/qmetaobject-rs qmetaobject] and became a collaborator in that project.
==Mentor==
* Jos van den Oever
==Features Available==
The bindings for the following parts are pretty much complete and have all the features:
* [https://api.kde.org/frameworks/kconfig/html/classKConfig.html KConfig Class]
* [https://api.kde.org/frameworks/kconfig/html/classKConfigGroup.html KConfigGroup Class]
* [https://api.kde.org/frameworks/kconfig/html/classKDesktopFile.html KDesktopFile Class]
* [https://api.kde.org/frameworks/kconfig/html/classKSharedConfig.html KSharedConfig Class]
* [https://api.kde.org/frameworks/kconfig/html/classKEMailSettings.html KEMailSettings Class]
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.
==Documentation==
* [https://docs.rs/kconfig/0.1.0/kconfig/ docs.rs]
==Published Crates==
The following are the links to the crates that have been published:
* [https://crates.io/crates/kconfig kconfig]
* [https://crates.io/crates/kconfig_impl kconfig_impl]
* [https://crates.io/crates/kconfig_compiler kconfig_compiler]


==Blog Posts==
==Blog Posts==
* [https://www.programmershideaway.xyz/posts/post2/ Season of KDE 2022]
* [https://www.programmershideaway.xyz/posts/post2/ Season of KDE 2022]
* [https://www.programmershideaway.xyz/posts/ Bitflags in Rust]
* [https://www.programmershideaway.xyz/posts/ Bitflags in Rust]
* [https://www.programmershideaway.xyz/posts/post4/ Using KConfig with Rust]
==Commits==
All the commits are made by me in the [https://invent.kde.org/oreki/kconfig-rs 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:
# [https://github.com/woboq/qmetaobject-rs/pull/262 Add isNull() wrapper for QVariant]
# [https://github.com/woboq/qmetaobject-rs/pull/260 Refactor QVariant]
# [https://github.com/woboq/qmetaobject-rs/pull/257 Implement QMetaType for QStringList]
# [https://github.com/woboq/qmetaobject-rs/pull/256 Add Qt::GlobalColor enum wrapper]
# [https://github.com/woboq/qmetaobject-rs/pull/255 Implement Add and AddAssign for QString]
# [https://github.com/woboq/qmetaobject-rs/pull/247 Add generic iterator for QList]
# [https://github.com/woboq/qmetaobject-rs/pull/239 Add methods and conversions for QString]
# [https://github.com/woboq/qmetaobject-rs/pull/234 Added QVariantMap Type]
# [https://github.com/woboq/qmetaobject-rs/pull/230 Implemented From for QStringList]
# [https://github.com/woboq/qmetaobject-rs/pull/226 Added QStandardPaths::StandardLocation enum]
Finally, I also got a pull request merged in KConfig: [https://invent.kde.org/frameworks/kconfig/-/merge_requests/118 Make KConfig::mainConfigName() public]


==Contact==
==Contact==
* [https://www.programmershideaway.xyz/ Website]
* [https://www.programmershideaway.xyz/ Website]

Latest revision as of 06:45, 17 April 2022

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.

Mentor

  • 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.

Documentation

Published Crates

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

Blog Posts

Commits

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

Contact