Список языковых привязок GTK (Vhnvkt x[dtkfd] hjnfx[kt 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)