Список языковых привязок GTK+
Как показано в таблице ниже, у GTK+ есть множество привязок для различных языков[1], которые реализуют некоторый или весь функционал GTK.
- GObject (GOB) был изначально написан как главный компонент GTK+, но в итоге им стал GLib.
- GObject Introspection — промежуточный слой между библиотеками на C (которые используют GObject) и языковыми привязками, например PyGObject использует именно его, а PyGTK — нет.[2]
- Официальные привязки GNOME следуют расписанию релизов GNOME, что гарантирует стабильность API и повременные релизы.
- Дизайнер интерфейсов Glade
| Язык | Название | Поддерживается? | Лицензия | Примечания | |||
|---|---|---|---|---|---|---|---|
| 2.24 | 3.12 | GIR | Официально | ||||
| Ada | GtkAda | Частично | Частично | Нет | Нет | GPLv3 | Поддерживается до версии 3.8.[3] |
| C | 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 |
| Fortran | 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 | GNOME wiki, основывается на SpiderMonkey от Mozilla |
| Seed | Да | Да | Да | Да | LGPL-2.1 | GNOME wiki, основывается на 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 | ||
| Pascal | 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 | |
| Prolog | 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 | RGtk2.pdf |
| Ruby | GirFFI-Gtk | Частично | Частично | Да | Нет | LGPL-2.1 | Основанные на GirFFI привязки к Gtk+. Поддерживает как Gtk+ 2, так и Gtk+ 3. |
| Ruby-GNOME2 | Частично | Да | Нет | Нет | MIT License | Частично поддерживается до версии 2.12 и после версии 2.14[12] | |
| 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.
- 1. Introduction: What is GtkAda ? — GtkAda 17.0w documentation
- http://ftp.gnome.org/pub/gnome/sources/gtk-sharp/2.99/gtk-sharp-2.99.2.news
- GtkD License LGPL-3 with additional exceptions.
- gtknode license.
- gotk3 license.
- LGI license.
- Gtk+3 - Free Pascal wiki
- Alexandre Pereira Bühler. Attention: created branch dev-php-gtk3. PHP-GTK General Mailing List (22 июня 2015).
- PyGObject History. Дата обращения: 29 августа 2013.
- Ruby-GNOME2 Project Team. gtk3 / Rubygems. Дата обращения: 7 мая 2013.
Литература
- 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)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.