On Tuesday, 8 April 2025 at 16:57:02 UTC, Ian wrote:
On Monday, 31 March 2025 at 01:22:12 UTC, Element Green wrote:
[giD](https://gid.dub.pm) v0.9.5 has now been released which
adds several additional bindings with the total library count
now over 60 with [high API
coverage](https://github.com/Kymorphia/gid/blob/main/report.txt).
This is amazing. Thank you!
Would you say GTK4 is already usable? It should be judging from
the example, but just checking if you think it's still missing
large chunks or will have large breaking changes.
As Dejan said, gid:gtk4 support has a very high [API
coverage](https://github.com/Kymorphia/gid/blob/main/report.txt)
(99.6% method coverage currently) and is very usable. You can
see a list of unsupported APIs in the linked report.txt.
gid:gtk3 actually has better coverage and support for Gtk3 than
gtk-d does as well.
Having said that, we do consider the API to be unstable at the
moment, hence the < 1.x version. The most recent release (v0.9.6)
adds GObject property method support and did some significant
renames to be more consistent (VariantG -> Variant, ObjectG ->
ObjectWrap, etc) for example. Having said that, at this point I
don't expect any major API breaking changes and we are nearing a
1.x release. At which point, the API will be kept as stable as
possible within a major version.
There are still areas that [gidgen](https://gidgen.dub.pm) does
not support with respect to GIR APIs, such as GObject "virtual
class" methods, and certain data type/ownership scenarios.
Bindings for such APIs (though few) could be created manually or
support added as needed. Virtual class method support will be
added in the next release, though I have seldom used those, since
there are typically alternative ways to execute them, since they
are often connected to signals or used only when implementing a
native GObject.
More unit tests and user testing is also needed before I feel
more confident there aren't any bugs or memory leaks. But I have
been using it in a port of a rather large commercial audio
synthesizer project [Kymorphia
Alkimiya](https://www.kymorphia.com/products/alkimiya/index.html)
with great success for a while now (website is a bit dated as it
is still WIP), which was my original inspiration for creating giD.