Список языковых привязок 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.