Список языковых привязок 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 |
Примечания
- ↑ GTK+ Language Bindings. The GTK+ Project. Дата обращения: 18 мая 2013. Архивировано из оригинала 13 июля 2011 года.
- ↑ GObject Introspection. Дата обращения: 16 марта 2016. Архивировано 23 марта 2016 года.
- ↑ 1. Introduction: What is GtkAda ? — GtkAda 17.0w documentation. Дата обращения: 16 марта 2016. Архивировано 3 марта 2016 года.
- ↑ Источник. Дата обращения: 16 марта 2016. Архивировано 4 марта 2016 года.
- ↑ GtkD License LGPL-3 with additional exceptions. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
- ↑ gtknode license. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
- ↑ gotk3 license. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
- ↑ LGI license. Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
- ↑ Gtk+3 - Free Pascal wiki. Дата обращения: 16 марта 2016. Архивировано 19 апреля 2016 года.
- ↑ Alexandre Pereira Bühler. Attention: created branch dev-php-gtk3. PHP-GTK General Mailing List (22 июня 2015). Дата обращения: 16 марта 2016. Архивировано 6 января 2022 года.
- ↑ PyGObject History. Дата обращения: 29 августа 2013.
- ↑ RGtk2.pdf. Дата обращения: 16 марта 2016. Архивировано 9 марта 2016 года.
- ↑ 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.
Ссылки
- The GTK+ Team. GTK+ Language Bindings. www.gtk.org. Дата обращения: 16 марта 2016. Архивировано из оригинала 13 июля 2011 года.
- Gtk : Language Bindings в каталоге ссылок Curlie (dmoz)