Az Étoilé egy GNUstep alapú felhasználói környezet, melyet rugalmasan kezelhető komponensekből és modulokból állítottak össze annak érdekében, hogy a felhasználó a saját igényeinek megfelelően kombinálhassa a szolgáltatásokat (alkalmazásokat) és komponenseket.
A rendszer fő jellemzői a projekt alapítói szerint:
Az Étoilé honlapja: http://etoileos.com
A rendszer legfontosabb projektjei a következők:
A CoreObject az ú.n. EtoileSerialise projekt alapjain épült és az Objective-C futásidejű sajátosságait használja ki, így nyújtva automatikus perzisztenciát és verziókezelést az egyes objektumoknak.
Az EtoileUI magasszintű, objektumorientált eszközkészlete egységes grafikus felhasználói felületmodellt ad az összes Étoilé alkalmazásnak.
Ez a toolkit számos tervmintát tartalmaz, melyek további kód hozzáírása nélkül felhasználhatóak, így az EtoileUI csökkenti a reprezentáció és a tényleges implementáció közötti űrt. A User Interface-t érintő elemek, tehát a layout-ok, controller-ek, stílusok, model objektumok stb. cserélhetőek, futásidőben hozzáadhatóak, eltávolíthatóak. Egy már létező, EtoileUI-on alapuló user interface könnyen átalakítható a felhasználó igényei, képernyő méret, bemeneti eszközök és egyéb célok szerint.
Az EtoileUI a következő mintákat tartalmazza:
Az EtoileUI által megjelenített elemek egy fa absztrakt / szemantikus csúcsai, amelyekhez különböző funkciók köthetők. Ez az egységes fa szerkezet bármilyen struktúrált tartalmat (dokumentum, felület stb) leír, és az egyes csúcsokhoz futásidőben különböző feladatokat rendelhet.
A csúcsok lehetnek:
Ezek a csúcsok több funkcióval bírhatnak:
Az Objective-C nyelv folyamatosan fejlődik, ezt a projekt tagjai egy új runtime library létrehozásával kívánják támogatni. Az Étoilé Runtime Library egy kutatási prototípusként jött létre. Sok, a GNU és Apple Objective-C runtime-ban nem megtalálható eszközzel rendelkezik, amely egy magasabbszintű keretrendszereket (pl. CoreObject) tehet jóval hatékonyabbá. A legtöbb ezirányú fejlesztés a GNU runtime-ra is lett portolva, ezért akár a következő GNUstep verzióban már meg is jelenhet. Az új runtime az új Objective-C 2.0 API-t használja, de a régebbi ObjectiveC2 keretrendszerű GNU runtime-okat is támogatja.
A LanguageKit egy dinamikus nyelveket fordító compiler-ek fejlesztésére készült keretrendszer, mely a kódot LLVM segítsévégel Objective-C runtime kódra fordítja. Lehetővé teszi, hogy más, magasszintű nyelveken írt kódokat Objective-C nyelvű kódokkal együtt használjunk egy objektumon belül.
A legtöbb munka, amit az Étoilé fejlesztése során véghezvittek arra összpontosult, hogy egy erős alapot szeretnének létrehozni a további környezet számára. Az OpenStep terminológiában a keretrendszer egy tároló, mely shared library-ket és azok header file-jait tartalmazza, azaz mindent, amire annak fejlesztésekor szükség van. Az Étoilé szerkezeti fája számos ilyen framework-öt tartalmaz, hogy megkönnyítse a fejlesztők dolgát.
A framework-ök legfrissebb éles verziói az alábbi címen keresztül érhetők el: http://svn.gna.org/svn/etoile/trunk/Etoile/Frameworks/
Ezek közül a legfontosabbak:
Az Étoilé-t komponens alapú rendszernek tervezték. Az alkalmazások valójában szolgáltatások, melyek néhány felhasználói beavatkozás észlelésére alkalmas komponenst nyújtanak, valamint szolgáltatást más komponensek számára.
A szerkezeti fa jelenleg sok szolgáltatást tartalmaz, ezeket két fő csoportra lehet osztani: felhasználói és privát. A felhasználói szolgáltatások azok a szolgáltatások, melyek közvetlenül a felhasználóval létesítenek kapcsolatot, mint a hagyományos alkalmazások, míg a privát szolgáltatások a felhasználói felület építőköveit alkotják.