summaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
authorAndrew Williams <andy@andywilliams.me>2018-01-05 02:58:43 -0800
committerapache <apache@e5-web1.enlightenment.org>2018-01-05 02:58:43 -0800
commitb1371eec5950e7fe54e55e1c567c562af4440177 (patch)
tree3ed0bf58730deb0f41362cb147f5b45a2a11354b /pages
parentb905b7e45135b241bb6453259d67873897b4c7bf (diff)
Wiki page about-efl.md changed with summary [Update for Unified vs Stable] by Andrew Williams
Diffstat (limited to 'pages')
-rw-r--r--pages/about-efl.md.txt39
1 files changed, 25 insertions, 14 deletions
diff --git a/pages/about-efl.md.txt b/pages/about-efl.md.txt
index 933fbca1b..851aa0220 100644
--- a/pages/about-efl.md.txt
+++ b/pages/about-efl.md.txt
@@ -21,18 +21,32 @@ EFL covers a wide range of functions including inter-process communication (IPC)
21 21
22## Parts of EFL ### 22## Parts of EFL ###
23 23
24EFL is made up of a number of libraries which build on top of each other in layers, steadily becoming higher-level, yet allowing access to each level as they go. The higher up you go, the less you have to do yourself. Elementary is about as high up as you get, while you still access layers below it for day to day tasks. 24EFL is made up of a number of libraries which build on top of each other in layers, steadily becoming higher-level, yet allowing access to each level as they go. The higher up you go, the less you have to do yourself. Out widget toolkit is about as high up as you get, while you can still access layers below it for greater control or lower level tasks.
25 25
26EFL exposes all of its APIs by default in C. There are several bindings available. Work is progressing on supporting bindings for various language as first-class-citizens in EFL by auto-generating them directly from the new object orientation infrastructure for C. 26EFL is written in C and exposes all of its APIs by default in C. Binding support exists for several languages including Python, C++ and Lua. As the object based Unified API is completed more language bindings will become available.
27 27
28The main focus is on C mostly because the libraries have been around for a long time, were originally written in that language and the developers of those libraries prefer C. The developers add OO features in C with tools and infrastructure where needed. Moving from C would also limit the audience. C programmers couldn't access a C++ API for instance, whereas a C++ programmer can access both C and C++. That is partly why the developers aim to auto-generate bindings so programmers of various languages can get native-like APIs for their chose language from the same core EFL API set. 28The main focus is on C mostly because the underlying libraries have been around for a long time, were originally written in that language and the developers of those libraries prefer C. Moving from C would also limit the audience. C programmers couldn't access a C++ API for instance, whereas a C++ programmer can access both C and C++. The developers aim to have bindings auto-generate so programmers of various languages can get native-like APIs for their chosen language from the same core EFL API set.
29 29
30The components are divided into named libraries or projects. Core EFL components include: 30Efl is currently undergoing a transition from our current stable module based presentation where each area has it's own name to a unified structure all under the Efl namespace.
31 31
32| Component | Description | 32### Unified EFL ###
33| -------------- | -------------- | 33
34| Evas | Core scene graph and rendering | 34The Unified Efl API is split into three main areas: Efl_Core, Efl_Net and Efl_Ui, each encompassing the one before so you can include a single reference in your app. For basic offline applications use Efl_Core, for additional network and connectivity use Efl_Net and if you are building a graphical application then use Efl_Ui (the widget toolkit).
35| Eina | Data structures and low level helpers | 35
36| Component | Description |
37| --------- | ----------- |
38| Efl_Core | Structures and functions for application runtime and object lifecycle including mainloop, I/O and events |
39| Efl_Net | Network access and session management including helpers for HTTP etc |
40| Efl_Ui | Full graphical features including scene graph rendering, 3D and widget toolkit |
41
42### Stable (module based) API ###
43
44The stable EFL API components are divided into named modules. Core EFL components include:
45
46| Component | Description |
47| --------- | ----------- |
48| Evas | Core scene graph and rendering |
49| Eina | Data structures and low level helpers |
36| Edje | UI layout & animation data files for themes | 50| Edje | UI layout & animation data files for themes |
37| Eet | Data (de)serialization and storage | 51| Eet | Data (de)serialization and storage |
38| Ecore | Core loop and system abstractions like X11 | 52| Ecore | Core loop and system abstractions like X11 |
@@ -41,15 +55,12 @@ The components are divided into named libraries or projects. Core EFL components
41| Embryo | Tiny VM and compiler based on Pawn | 55| Embryo | Tiny VM and compiler based on Pawn |
42| Eeze | Device enumeration and access library | 56| Eeze | Device enumeration and access library |
43| Emotion | Video decode wrapping, glue and abstraction | 57| Emotion | Video decode wrapping, glue and abstraction |
44| Ethumb| Thumbnailing handler | 58| Ethumb | Thumbnailing handler |
45| Ephysics | Physics (bullet) wrapper and Evas glue | 59| Ephysics | Physics (bullet) wrapper and Evas glue |
46| EIO | Asynchronous I/O handling | 60| EIO | Asynchronous I/O handling |
47| Evas Generic Loaders | Extra image loaders for complex image types| 61| Evas Generic Loaders | Extra image loaders for complex image types|
48| Emotion Generic Players | Extra video decoders (for VLC) | 62| Emotion Generic Players | Extra video decoders (for VLC) |
49| Elementary | Widgets and high level abstractions | 63| Elementary | Widgets and high level abstractions |
50
51
52Binding support exists for several languages such , including Python, Javascript, C++, Ruby and Lua.
53 64
54### The EFL Model ### 65### The EFL Model ###
55 66