Architecture Overview
Services
Étoilé aims to be a component-based system. Applications are services which provide some user interaction components as well as services to other components. The tree currently contains a number of services, divided into two categories - user and private. User services are those which interact directly with the user like traditional applications, while private ones form the building blocks of the user experience.
Frameworks
Most of the existing work in Étoilé has been focused towards building a strong foundation on which to construct the rest of the environment. In OpenStep terminology a framework is a bundle containing a shared library and its header filesóeverything you need to start developing with it.
-
EtoileUI
EtoileUI lets you build user interfaces which are run-time modifiable and inspectable, with pluggable layouts.
-
CoreObject
Autosaving, universal search, tag groups, unlimited versions: just a few of the things CoreObject gives you for free. See what else CoreObject can do to make your life easier and more productive. CoreObject is built on top of EtoileSerialise, which uses the runtime introspection features of Objective-C to give automatic persistence and versioning of arbitrary object types.
-
LanguageKit
LanguageKit is an LLVM-based compiler for dynamic languages which targets the Objective-C runtime, so no language bridging is needed. It is designed to support multiple language frontends - currently, the main frontend is Smalltalk, which is about 1000 lines of code. A frontend for a ECMAScript-like language is also in development.
Base
-
GNUstep
Étoilé is built on top of GNUstep, a Free Software implementation of the OpenStep Specification, familiar to OS X users as Cocoa. This is a mature framework, which has undergone constant refinement for almost fifteen years. OpenStep makes use of the dynamic capabilities of the Objective-C language to make many complex tasks simple.
-
Etoile Runtime
The Objective-C language continues to evolve. We are committed to supporting the evolving needs of the the language through a new runtime library. We also aim to support foreign object models, such as that of Io, without resorting to bridging. The Étoilé runtime has a lot of features not found in the GNU and Apple Objective-C runtimes which will make higher-level frameworks like CoreObject significantly more efficient. Étoilé developers are also working on the clang LLVM front end to support Objective-C on the GNU and Étoilé runtimes.