Projekt LeanQt opracowuje uproszczony widelec Qt 5

W ramach projektu LeanQt rozpoczęto opracowywanie uproszczonego forka Qt 5, którego celem jest ułatwienie budowania ze źródła i integracji z aplikacjami. LeanQt został opracowany przez Rochusa Kellera, autora kompilatora i środowiska programistycznego dla języka Oberon, powiązanego z Qt 5, w celu uproszczenia kompilacji swojego produktu przy minimalnej liczbie zależności, ale przy zachowaniu wsparcia dla obecnych platform. Kod jest nadal rozwijany na licencjach GPLv3, LGPLv2.1 i LGPLv3.

Należy zauważyć, że w ostatnich latach pojawiła się tendencja, aby Qt był rozdęty, nadmiernie skomplikowany i zarośnięty kontrowersyjną funkcjonalnością, a instalacja zestawów binarnych wymaga rejestracji na stronie internetowej komercyjnej firmy i pobrania ponad gigabajta danych. LeanQt próbuje stworzyć lekką wersję Qt 5.6.3, oczyszczoną ze wszystkich niepotrzebnych rzeczy i przeprojektowaną strukturalnie. Do montażu zamiast qmake używany jest autorski system montażu BUSY. Oferowane są dodatkowe opcje, które umożliwiają opcjonalne włączanie i wyłączanie różnych kluczowych komponentów podczas montażu.

Zadeklarowana obsługa następujących funkcji Qt:

  • Tablice bajtów, ciągi znaków, Unicode.
  • Lokalizacja.
  • Kolekcje, ukryte udostępnianie danych (implicit Sharing).
  • Praca z datami, godzinami i strefami czasowymi.
  • Typ wariantu i metatypy.
  • Kodowanie: utf, proste, łacińskie.
  • Abstrakcja urządzeń wejścia/wyjścia.
  • Silnik plików.
  • Strumienie tekstu i strumienie danych.
  • Wyrażenia regularne.
  • Logowanie.
  • Hashuje md5 i sha1.
  • Elementy geometryczne, json i xml.
  • rcc (kompilator zasobów).
  • Wielowątkowość.
  • Możliwość zbudowania dla systemów Linux, Windows i macOS.

Wśród najbliższych planów: obsługa wtyczek, podstawowych obiektów, metatypów i zdarzeń, modułów QtNetwork i QtXml.

Plany odległe: moduły QtGui i QtWidgets, drukowanie, równoległość operacji, obsługa portu szeregowego.

Następujące elementy nie będą obsługiwane: qmake, framework State Machine, rozszerzone kodowanie, animacja, multimedia, D-Bus, SQL, SVG, NFC, Bluetooth, silnik sieciowy, testlib, skrypty i QML. Spośród platform zdecydowano nie obsługiwać iOS, WinRT, Wince, Android, Blackberry, nacl, vxWorks i Haiku.

Źródło: opennet.ru

Dodaj komentarz