SoK/2022/StatusReport/Ayush Singh: Difference between revisions
No edit summary |
No edit summary |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Rust Wrapper of KConfig== | ==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 [ | 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 [ | 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== | ||
* [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/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] |
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:
- Add isNull() wrapper for QVariant
- Refactor QVariant
- Implement QMetaType for QStringList
- Add Qt::GlobalColor enum wrapper
- Implement Add and AddAssign for QString
- Add generic iterator for QList
- Add methods and conversions for QString
- Added QVariantMap Type
- Implemented From for QStringList
- Added QStandardPaths::StandardLocation enum
Finally, I also got a pull request merged in KConfig: Make KConfig::mainConfigName() public