Projektek

Proton
C++11FüggvénykönyvtárÁltalános célú felhasználásRAD

A Proton egy általános célú C++11 nyelven készülő függvénykönyvtár, amelynek célja, hogy megkönnyítse a C++11-ben készülő alkalmazások gyors fejlesztését. A függvénykönyvtár olyan, a standard függvénykönyvtár és a méltán népszerű boost library által nyitva hagyott kérdésekre igyekszik választ adni, mint például:

  • Adatpufferek egységes elérése, kezelése
  • Unicode szövegkezelés hiányos
  • „Tulajdonság” objektumok kezelése
  • Szinkron és aszinkron küldési sorok
  • Termelő-fogyasztó küldési sor automatikus erőforrás felszabadítással a termelő szálon
  • Transzparens, zárolást biztosító generikus pointer osztály
  • Többrétegű, átlátszó függvényburkolás (wrap)
  • Szignálok kezelése Boost-ban is van
  • Egyszerű fájlkezelő függvények
  • Többnyelvű alkalmazásfejlesztés támogatása folyamatban
  • Naplózás megvalósítása folyamatban, távlati cél csupán
  • UPS - Unified Program Space külön projekt, de a könyvtár része
A Unified Program Space kivételével egyetlen komponens használata sem igényel linkelést. (Egyelőre, legalábbis. Azoknál az összetevőknél, amelyek még nincsenek készen, ez nem mondható biztosra.)
Honnan szerezhetem meg?

A Proton jelenleg erősen fejlesztés alatt áll. Idővel meg fog jelenni vagy a GitHub-on, vagy a rudanium egy nyilvános felületén. Az első változat vélhetően nem fogja tartalmazni a naplózást és a többnyelvű alkalmazások fejlesztésének támogatását, azonban a unicode támogatásnak mindenképpen el kell még készülnie, és ezzel még sok munka van. Néhány UPS komponens sem áll még készen a kiadásra, a plugin rendszer pedig az első kiadásra nem fog elkészülni. A könyvtárat GPL vagy LGPL licensszel tervezzük kiadni.

Platformok

A Proton csak a standard függvénykönyvtárat használja, az UPS kivételével, amely a plugin rendszerében platform specifikus eljárásokra támaszkodik. Linuxon és Macen hamarabb lesz stabil kiadás, mint Windowson, de hosszú távon a Windowsos változatnak sincsen akadálya.

UPS - Unified Program Space
C++11FüggvénykönyvtárDinamikus adatmodellekPluginokEgyedi futásidejű típusazonosítás

„Az anyag, ami összetartja a programjaimat!”

A Unified Program Space (egységes programtér - a továbbiakban UPS) egy függvénykönyvtár, amely számos, dinamikus alkalmazások fejlesztésével kapcsolatos problémát igyekszik megoldani. A dinamikus alkalmazás itt olyan szoftvert jelent, amelynek például az adatmodellje fordítási időben nem dönthető el egyértelműen, vagy éppen eldönthető, de szeretnénk könnyen bővíthető alapokra helyezni új programunkat. Elképzelhető, hogy pluginokkal könnyedén továbbfejleszthető alkalmazásra vágyunk, és nem szeretnénk megküzdeni a C programozási nyelv által nyújtott szegényes dinamikus csatolási lehetőségekkel (dlfcn.h, Linux rendszereken). Az UPS ezt elrejti előlünk, képesek vagyunk osztályok szintjén kommunikálni pluginokkal, betölteni őket, felmérni az adott bővítmény képességeit, az általa megvalósított, exportált osztályokat, és példányosítani.

Képességek
  • Gyors statikus típusazonosítási rendszer
  • Gyors, kísérleti dinamikus típusazonosítási rendszer Folyamatban
  • Tetszőleges (fordítási időben regisztrált) típus nevének szövegként való elérése
  • Tetszőleges, futási időben váltható típust biztonságosan tároló „any” típus
  • Map osztály, amely valamilyen kulcsból „any” típusra képez, egyszerűsített lekérő metódusokkal
  • Objektum ősosztály - a leszármazottak tetszőleges metaadatokkal címkézhetőek, azonosítható az öröklési hierarchiájuk
  • Aspektusok - UPS objektumokhoz további metaadatok fűzhetőek, speciális hozzáférési szabályokkal Folyamatban
  • A Proton tulajdonság-objektumainak UPS által támogatott variánsai
  • Keresés objektumokra metaadatokból álló összetett lekérések segítségével
  • Hasonló keresések aspektusokon keresztül Folyamatban
  • JSON metaadat olvasás és írás támogatása Folyamatban
  • Bővítmény-kezelő rendszer Folyamatban
Honnan szerezhetem meg?

Az UPS - a Proton részeként - erősen fejlesztés alatt áll. Amint a Proton és az UPS is kellően érett, elérhetővé válik. Az első kiadás nem fogja tartalmazni az összes funkcionalitását. A plugin támogatás teljesen ki fog maradni belőle (még ha vannak is már kódok rá). Az UPS valószínűleg GPL vagy LGPL licensszel kerül majd kiadásra.