Список языковых привязок GTK

У GTK есть множество привязок для различных языков[1], которые реализуют все или часть функций GTK.

GObject (GOB) был изначально написан как главный компонент GTK, но в итоге им стал GLib. GObject Introspection — промежуточный слой между библиотеками на Си (которые используют GObject) и языковыми привязками; например PyGObject использует именно его, а PyGTK — нет[2]. Официальные привязки GNOME следуют расписанию выпусков GNOME, что гарантирует стабильность API.

Язык Название Поддерживается? Лицензия Примечания
2.24 3.12 GIR Официально
Ада GtkAda ЧастичноЧастичноНетНет GPLv3 Поддерживается до версии 3.8.[3]
Си GTK+ ДаДаN/AДа LGPL-2.1 Нативно, привязки не требуются.
C++ gtkmm ДаДаНетДа LGPL-2.1
C# и другие CLI-языки Gtk# ЧастичноЧастичноНетДа LGPL-2.1 Поддерживается до версии 2.12. Поддержка 3.0 в разработке.[4]
D GtkD ДаДаНетНет LGPL-3 с исключениями[5] Поддерживается с версии 2.12
Erlang gtknode ЧастичноНетНетНет MIT[6] Частично поддерживается с версии 2.16
Фортран gtk-fortran ЧастичноЧастичноНетНет GPL-3 Частично поддерживается с версии 2.24. Поддерживался полностью с версии 2.12 до 2.18
FreeBASIC FreeBASIC-привязки к GTK+ ДаЧастичноНетНет LGPL-3 с исключениями Поддерживается до версии 3.4 и с версии 2.8 встроен в основную поставку.
Gambas Gambas gb.gtk component ЧастичноНетНетНет GPL-2 Поддержка GTK+ 3 в разработке.
Genie Genie ДаДаДаДа LGPL-2.1 Язык написан для системы GObject
Go go-gtk ЧастичноНетНетНет BSD/LGPL-2.1 Частично поддерживался в версии 2.24
gotk3 НетЧастичноНетНет ISC[7]
gogobject НетЧастичноДаНет MIT
Guile guile-gnome ЧастичноНетНетНет GPL-2 Поддерживается до версии 2.12, частично поддерживается в 2.14
Haskell Gtk2Hs ДаДаНетНет LGPL-2.1 Gtk2Hs — набор привязок к различным библиотекам, в том числе GTK+.
J J GTK addon ЧастичноНетНетНет GPL-3
Java и другие языки JVM java-gnome ДаДаНетДа GPL-2 с исключениями Недоступна для Microsoft Windows
Julia Gtk.jl ДаДаНетНет MIT Включает поддержку Glib
JavaScript Gjs ДаДаДаДа MIT Основывается на SpiderMonkey от Mozilla
Seed ДаДаДаДа LGPL-2.1 Основывается на JavaScriptCore от WebKit
Lua LGI ЧастичноДаДаНет MIT[8] Динамические привязки к GObject, использующие GObject-Introspection.
lgob НетДаДаНет LGPL-3 lgob предоставляет привязки к GObject-based для Lua 5.1.
OCaml LablGtk ЧастичноНетНетНет LGPL-2.1 с исключениями Поддерживается до версии 2.16
ooRexx RexxGTK ЧастичноНетНетНет CPL Поддерживается с версии 2.0
Objective-C CoreGTK НетЧастичноНетНет LGPL-2.1
ObGTK ЧастичноНетНетНет LGPL-2.1
Objective-C GTK ЧастичноНетНетНет LGPL-2.1
Паскаль Free Pascal gtk package ДаДаНетНет LGPL-3 с исключениями Поддерижвается до 2.24, встроен в стандартную поставку. Привязки к Gtk+3.0 разрабатываются проектом Lazarus-ccr.[9]
Perl Gtk2-Perl ДаДаДаДа LGPL-2.1
PHP PHP-GTK ЧастичноЧастично[10]НетНет LGPL-2.1
Пролог PLGI ЧастичноДаДаНет LGPL-2.1 Динамические привязки к GObject, использующие GObject-Introspection.
Python pgi ЧастичноЧастичноДаНет LGPL-2.1 GObject Introspection привязки для PyPy.
pygir-ctypes ЧастичноЧастичноДаНет BSD Обёртка для GObject Introspection Repository (GIR) на чистом Python, использующая ctypes.
PyGObject ДаДаДаДа LGPL-2.1 С версии 2.22[11]
PyGTK ДаНетНетДа LGPL-2.1 Статические привязки, использующие PyGObject
R RGtk2 ЧастичноНетНетНет GPL-2 [12]
Ruby GirFFI-Gtk ЧастичноЧастичноДаНет LGPL-2.1 Основанные на GirFFI привязки к Gtk+. Поддерживает как Gtk+ 2, так и Gtk+ 3.
Ruby-GNOME2 ЧастичноДаНетНет MIT License Частично поддерживается до версии 2.12 и после версии 2.14[13]
Rust gtk-rs НетДаДаДа LGPL-2.1
gi-rust НетДаДаНет LGPL-2.1
Smalltalk GNU Smalltalk GTK+ bindings ДаНетНетНет GPL-2
Smalltalk YX GTK±плагин ДаНетНетНет MIT
SqueakGtk ЧастичноНетНетНет MIT
Tcl Gnocl ДаНетНетНет BSD
Vala Vala ДаДаДаДа LGPL-2.1 Язык написан для GObject
Wrapl Wrapl GTK+ module ЧастичноНетНетНет GPL-3 Почти полностью поддерживается до версии 2.22

Примечания

  1. GTK+ Language Bindings. The GTK+ Project. Дата обращения: 18 мая 2013. Архивировано из оригинала 13 июля 2011 года.
  2. GObject Introspection. Дата обращения: 16 марта 2016. Архивировано 23 марта 2016 года.
  3. 1. Introduction: What is GtkAda ? — GtkAda 17.0w documentation. Дата обращения: 16 марта 2016. Архивировано 3 марта 2016 года.
  4. Источник. Дата обращения: 16 марта 2016. Архивировано 4 марта 2016 года.
  5. GtkD License LGPL-3 with additional exceptions. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
  6. gtknode license. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
  7. gotk3 license. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
  8. LGI license. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
  9. Gtk+3 - Free Pascal wiki. Дата обращения: 16 марта 2016. Архивировано 19 апреля 2016 года.
  10. Alexandre Pereira Bühler. Attention: created branch dev-php-gtk3. PHP-GTK General Mailing List (22 июня 2015). Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
  11. PyGObject History. Дата обращения: 29 августа 2013.
  12. RGtk2.pdf. Дата обращения: 16 марта 2016. Архивировано 9 марта 2016 года.
  13. Ruby-GNOME2 Project Team. gtk3 / Rubygems. Дата обращения: 7 мая 2013. Архивировано 7 апреля 2014 года.

Литература

  • Andrew Krause. Language Bindings // Foundations of GTK+ Development. — Apress, 2007-09-09. — С. 9. — 639 с. — ISBN 9781430203865.

Ссылки