92 lines
4.5 KiB
Plaintext
92 lines
4.5 KiB
Plaintext
~~Title: About EFL~~
|
|
==== EFL ====
|
|
|
|
[[download|Download EFL Here]]
|
|
|
|
Code quality - [[https://scan.coverity.com/projects/552|EFL Coverity scan status]]
|
|
|
|
{{:efl-core.png?nolink |}}
|
|
|
|
EFL is made up of quite a few libraries that 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 things as there is no need for
|
|
it to wrap things that work perfectly well as-is.
|
|
|
|
All of EFL exposes its APIs by default in C, with several bindings
|
|
available. We are now also working on supporting bindings for various
|
|
language as first-class-citizens in EFL by auto-generating the
|
|
bindings directly from our new object orientation infrastructure for
|
|
C. We stick to C mostly because the libraries have been around for a
|
|
long time, were originally written in C and the developers who write
|
|
the libraries prefer C. We add OO features in C with tools and
|
|
infrastructure where needed. Also moving from C would limit the
|
|
audience. C programmers won't be able to access a %%C++%% API (whereas a
|
|
%%C++%% programmer can access both C and %%C++%%). That is partly why we 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.
|
|
|
|
Our components are divided into named libraries or projects. Core EFL
|
|
components are:
|
|
|
|
^Component ^ Description ^
|
|
|Evas |Core scene graph and rendering |
|
|
|Eina |Data structures and low level helpers |
|
|
|Edje |UI layout & animation data files for themes |
|
|
|Eet |Data (de)serialization and storage |
|
|
|Ecore |Core loop and system abstractions like X11 |
|
|
|Efreet |Freedesktop.org standards handling |
|
|
|Eldbus |D-Bus glue and handling |
|
|
|Embryo |Tiny VM and compiler based on Pawn |
|
|
|Eeze |Device enumeration and access library |
|
|
|Emotion |Video decode wrapping, glue and abstraction |
|
|
|Ethumb |Thumbnailing handler |
|
|
|Ephysics |Physics (bullet) wrapper and Evas glue |
|
|
|EIO |Asynchronous I/O handling |
|
|
|Evas Generic Loaders |Extra image loaders for complex image types |
|
|
|Emotion Generic Players |Extra video decoders (for VLC) |
|
|
|Elementary |Widgets and high level abstractions |
|
|
|
|
Binding support exists for several languages such as:
|
|
|
|
* Python
|
|
* Javascript
|
|
* %%C++%%
|
|
* Ruby
|
|
* Lua
|
|
|
|
EFL was originally intended to provide the core for Enlightenment, but
|
|
has grown to do much more. In trying to keep EFL lean, it has found a
|
|
use for embedded devices all the way up to powerful desktop behemoths.
|
|
|
|
These libraries already power millions of systems, from mobile
|
|
phones to set top boxes, desktops, laptops, game systems and more. It
|
|
is only now being recognized for its forward-thinking approaches, as
|
|
products and designers want to do more than the boring functional user
|
|
experiences of the past. This is where EFL excels.
|
|
|
|
[[http://www.free.fr|Free.fr]] has shipped millions of set top boxes in
|
|
France, powered by EFL. The
|
|
[[http://wiki.openmoko.org/wiki/Neo_FreeRunner|Openmoko Freerunner]]
|
|
sold thousands of devices with EFL and Enlightenment on them.
|
|
[[http://www.yellowdoglinux.com/|Yellow Dog Linux]] for the Sony PS3
|
|
ships with Enlightenment as the default. EFL has been used on printers,
|
|
netbooks and more. It powers the
|
|
[[http://www.samsung.com/us/mobile/wearable-tech|Samsung Galaxy Gear]]
|
|
watches (Gear 2, S, S2, S3...), is behind the
|
|
[[http://www.samsung.com/in/consumer/mobile-phone/mobile-phone/dual-sim-phone/SM-Z130HZKDINS|Samsung Z1 ]],
|
|
[[http://www.samsung.com/in/microsite/z2|Z2]] and
|
|
[[http://www.samsung.com/in/microsite/z3|Z3]] mobile phones,
|
|
and the
|
|
[[http://www.samsung.com/us/video/4k-suhd-tv|Samsung SUHD Smart TVs]]
|
|
that run Tizen. Cameras also use Enlightenment and EFL such as the
|
|
[[http://www.samsung.com/uk/discover/camera/find-your-signature-with-samsung-nx1/|Samsung NX1]]
|
|
and the
|
|
[[http://www.samsung.com/global/nx/nx300m/|Samsung NX300M]] smart
|
|
Camera. Also GPS units such as models from
|
|
[[https://www.moncoyote.com/|Coyote]] Run EFL on a lean and mean RTOS.
|
|
Also Web conference cameras such as
|
|
[[https://www.biscotti.com/|Biscotti]] use EFL to do their work.
|