Das LeanQt-Projekt hat die Entwicklung eines abgespeckten Ablegers von Qt 5 begonnen, der darauf abzielt, den Build-Prozess aus dem Quellcode zu vereinfachen und die Integration mit Anwendungen zu erleichtern. LeanQt wird von Rochus Keller, dem Autor des Compilers und der Entwicklungsumgebung für die Programmiersprache Oberon, die auf Qt 5 basiert, geleitet. Ziel ist es, die Kompilierung seines Produkts mit minimalen Abhängigkeiten zu vereinfachen und dabei die Unterstützung aktueller Plattformen zu gewährleisten. Der Code wird weiterhin unter den Lizenzen GPLv3, LGPLv2.1 und LGPLv3 entwickelt.
Es wird festgestellt, dass in den letzten Jahren eine Tendenz zur Aufblähung von Qt, zu übermäßiger Komplexität und zu umstrittenen Funktionen zu beobachten ist, und die Installation von Binärversionen erfordert die Registrierung auf der Website eines kommerziellen Unternehmens sowie den Download von mehr als einem Gigabyte an Daten. Mit LeanQt wird der Versuch unternommen, eine leichte Version von Qt 5.6.3 zu schaffen, die von allem Überflüssigen befreit und strukturell überarbeitet wurde. Anstelle von qmake wird ein eigenes Build-System, BUSY, genutzt. Zusätzliche Optionen ermöglichen es, verschiedene Schlüsselkomponenten bei der Erstellung nach Bedarf ein- und auszuschalten.
Die Unterstützung folgender Qt-Funktionen wird angekündigt:
- Byte-Arrays, Strings, Unicode.
- Lokalisierung.
- Sammlungen, implizite Datenaufteilung (Implizites Sharing).
- Arbeiten mit Daten, Zeit und Zeitzonen.
- Typ variant und Metatypen.
- Kodierungen: utf, simple, latin.
- Abstraktion von Ein-/Ausgabegeräten.
- Dateimotor.
- Text-Streams und Daten-Streams.
- Reguläre Ausdrücke.
- Protokollierung.
- Hashes md5 und sha1.
- Geometrische Primitiven, json und xml.
- rcc (Resource Compiler).
- Multithreading.
- Möglichkeit zur Erstellung für Linux, Windows und macOS.
Zu den nächsten Plänen gehören: Unterstützung von Plugins, Basisobjekten, Metatypen und Ereignissen, Module QtNetwork und QtXml.
Zukünftige Pläne: Module QtGui und QtWidgets, Druckausgabe, Parallelisierung von Operationen, Unterstützung für serielle Ports.
Nicht unterstützt werden: qmake, State Machine Framework, erweiterte Kodierungen, Animation, Multimedia, D-Bus, SQL, SVG, NFC, Bluetooth, Web-Engine, testlib, Scripting und QML. Es wird entschieden, iOS, WinRT, Wince, Android, Blackberry, nacl, vxWorks und Haiku nicht zu unterstützen.
Quelle: opennet.ru
