Ecore is a set of libraries to help software development. It's part of [[EFL|Enlightenment Foundation Libraries], is written in C but bindings for Python and Ruby exists.
The base library provides main loop with interesting calls as timers, animators, pollers, file descriptor handlers, idlers idle enterer and exit, some of these do not exit in GLib or Qt counterparts. It will also provide an asynchronous event dispatching system, this can be used by applications and is also used to handle UNIX signals like
Other libraries provide integration of some other system with Ecore, like ecore_x that integrates X11 using Xlib or Xcb; ecore_directfb that integrates DirectFB; ecore_con to do communication using TCP, UDP and even integrates with curl to provide easy access to HTTP resources; ecore_file for easier path and file manipulation and so on.
Of special interest for EFL users is Ecore_Evas that will integrate Evas with ecore main loop and some input/output system as X11, DirectFB or WindowsCE, it will feed Evas with events, request render of parts and then inform the output system that parts were updated.
- idlers, including exiter and enterer (useful for garbage collect and render phases)
- timers, including shared timers as animators and pollers
- file descriptor handlers
- asynchronous events
- UNIX signal handling in asynchronous way
- xlib or xcb backends
- supports most of api, including xrandr, xscreensaver and more
- used by e17 window manager
- integrates with fb, directfb, x11, directdraw, quartz and most of evas engines
- handles evas render phase automatically using idle enterer.
- handles memory buffer flushing on idle, releasing shared X11 pixmaps, for example
- easy to use, main loop based unix sockets, tcp, udp, multicast client and server
- curl integration
- client server inter-process communication integrated in main loop
- framebuffer, supports libts (touchscreen)
- macos quartz
- win32 api