Explaining the goals of the GATE project
- GATE is primarily a C library for operating system related functions
- GATE contains a thin C++ library layer to bring the C implementation into the realm of the C++ language.
- Planned support of all common operating systems (like Windows, WindowsCE, Linux, BSD, MacOS, RTOS)
- Abstraction of operating system features for
- file system access
- thread management
- process management and inter process communication
- data channels like network sockets and other communication devices
- system resource and configuration management
- Low resource requirements for memory and CPU
- The library code MUST be statically compilable
- By concept an app MUST be able to be published as one single executable file.
- Usage of dynamic libraries is only allowed, if these libraries are part of the operating system and are guaranteed to be accessible in all conditions of user access limitations.
Usage of 3rd party code
- GATE may use open source libraries as long as no copyleft is required.
- GATE source code must be legally integrable in all kinds of existing software license. e.g. open source, closed source and shared source licenses.
- The license of a 3rd party library MUST NOT interfere with apps and products built from GATE libraries.
- Only free algorithms are allowed to be used
- Derived from general knownledge
- Public domain code
- 3rd party code MUST be compilable together with GATE code
into an independent static library.
- Dependencies to one or more external dynamic libraries are NOT allowed.