scala.meta
libqt6zig
| scala.meta | libqt6zig | |
|---|---|---|
| 3 | 8 | |
| 1,154 | 229 | |
| -0.3% | 9.6% | |
| 9.6 | 9.3 | |
| 4 days ago | 4 days ago | |
| Scala | Zig | |
| BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
scala.meta
-
C++26: more constexpr in the core language
> Combined with the extremely powerful compile-time reflection capabilities of D it's the closest thing I've seen to Lisp metaprogramming outside of that family of languages ...
Scala gets pretty close to LISP-level of metaprogramming support between its intrinsic support for macros[0] (not to be confused with the C/C++ preprocessor of the same name) the Scalameta project[1], and libraries such as Shapeless[2].
Not comparing Scala to D, just identifying a language with similar functionality.
0 - https://docs.scala-lang.org/scala3/reference/metaprogramming...
1 - https://scalameta.org/
2 - https://github.com/milessabin/shapeless
-
Scala Library To Generate Case Classes for JSON
I just wrote a small generator for a personal project using scalameta. It might be worth doing just for the learning experience, I thought it was a blast to use.
-
Running tests from emacs
I have successfully installed metals on emacs as per the instructions on scalameta.org - things like syntax highlighting and jump to definiton work, and lsp-metals-doctor-run shows mostly green ticks.
libqt6zig
-
The state of building user interfaces in Rust
Rust needs good Qt bindings. None of the existing projects will ever reach Qt. Rust. Cargo. Qt. Go did it with https://github.com/mappu/miqt. Zig did it with https://github.com/rcalixte/libqt6zig. When will Rust do it? The time is now.
- Native all the way, until you need text
- Show HN: Gova – The declarative GUI framework for Go
-
How I turned Zig into my favorite language to write network programs in
> In the previous C++ version, I used Qt, which might seem very strange for a server software, but I wanted a nice way of doing asynchronous I/O and Qt allowed me to do that. It was callback-based, but Qt has a lot of support for making callbacks usable. In the newer prototypes, I used Go, specifically for the ease of networking and concurrency. With Zig, I was stuck.
There are new Qt bindings for these. Go has https://github.com/mappu/miqt and Zig has https://github.com/rcalixte/libqt6zig. I wonder if the author knew about them. I don't know enough about either language to speak on the async parts.
For me, I want these for Rust, especially what Zig has because I use KDE. I know about https://github.com/KDAB/cxx-qt and it is the only maintained effort for Rust that is left standing after all these years. But I don't want QML. I definitely don't want C++ or CMake. I just want Rust and Cargo.
-
Why Zig + Qt Feels Like Doing the Impossible Right
For this article and experiment I went with libqt6zig, there are other bindings libraries out there for Zig but they are QML based whereas libqt6zig is a direct binding to the Qt C++ API which I tend to prefer and it interested me a lot more because direct bindings are generally more performant and a lot harder to do correctly, so I wanted to see how well it was implemented and how well it worked in practice. The results were frankly surprisingly good and I was able to build a fully functional shopping list application with it in a relatively short amount of time, with minimal friction or trouble, I did manage to segfault a couple of times but that's to be expected and honestly half the fun, made me kinda nostalgic in fact. I've also spoken about the library with its author and maintainer rcalixte who is a super nice and helpful guy with an enthusiasm for tech and programming that is infectious and I can really relate to. So honestly if you've ever done any GUI programming before and you're interested in trying out Zig for GUI development I highly recommend you give libqt6zig a try, it's a solid library with a ton of potential.
- Lazarus Release 4.0
- C++26: more constexpr in the core language
- Qt 6 Bindings for Zig
What are some alternatives?
Scala Async - An asynchronous programming facility for Scala
libvlc-zig - Zig bindings for libVLC media framework.
Ammonite-Ops - Scala Scripting
zig-webui - Use any web browser or WebView as GUI, with Zig in the backend and modern web technologies in the frontend, all in a lightweight portable library.
Lamma - Lamma schedule generator for Scala is a professional schedule generation library for periodic schedules like fixed income coupon payment, equity deravitive fixing date generation etc.
qt5.cr - Qt5 bindings for Crystal, based on Bindgen