From e34ae0e00d322bb7dfa6c324a7179c0fcae7e737 Mon Sep 17 00:00:00 2001 From: Nate Drake Date: Fri, 1 Dec 2017 06:07:23 -0800 Subject: [PATCH] Wiki page about-efl.md changed with summary [Markdown version] by Nate Drake --- pages/about-efl.md.txt | 91 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 pages/about-efl.md.txt diff --git a/pages/about-efl.md.txt b/pages/about-efl.md.txt new file mode 100644 index 000000000..7bb35233e --- /dev/null +++ b/pages/about-efl.md.txt @@ -0,0 +1,91 @@ +~~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.