Menu

Tree [r171] /
 History

HTTPS access


File Date Author Commit
 Doc 2012-11-16 ondrejdanek [r170]
 Saf 2012-11-16 ondrejdanek [r170]
 Test 2012-11-15 ondrejdanek [r167]
 Vault 2012-11-16 ondrejdanek [r170]
 CMakeLists.txt 2012-11-15 ondrejdanek [r166]
 Doxyfile 2012-11-16 ondrejdanek [r170]
 License.BSD.txt 2012-11-16 ondrejdanek [r170]
 Readme.txt 2012-11-17 ondrejdanek [r171]

Read Me

Simple Application Framework
=============================

Introduction:
Simple Application Framework (Saf) is a library aiming at providing a rich set of generic classes and functions enabling rapid development of robust and safe applications. The library is written in C++ and places emphasis on clean and extensible object-oriented design and efficient algorithms. It is intended as a replacement and extension of the Standard Template Library (STL) that would be closer to modern trends in IT represented by the Base Class Library in .NET or the Java Class Library.

What are the main design goals?
    - Generic programming
    - Clean, efficient, easily understandable, reusable and portable code    
    - Transparent code organization (nested namespaces)
    - Support for modern and the most common compilers and platforms

In particular, we would like to:
    - Don't make things unnecesarilly complex
    - Avoid obscure template patterns and jungle of macros that are hard to understand, configure and debug
    - Avoid compiler or platform specific hacks as much as possible
    - Avoid ugly low-level or ad-hoc optimizations in places where the compiler can do it itself (and often better)
    - Avoid code bloat by prefering the main design goals to backwards compatibility and archaic compiler support
    - Use C++ and its advanced features wisely, the language can be a beast

What is it going to contain?
    - Fundamental computer science algorithms and data structures useful in everyday work
    - Unicode strings and characters, type-safe and easy-to-use string formatting interface
    - Date and time handling
    - Filesystem access routines
    - Basic networking support
    - Random number generators
    - Regular expressions
    - Thread support and synchronization mechanisms
    - Extendable logging system
    - Simple math classes and functions (powers, commond divisors and multiples, vectors, matrices, etc.)
    - A lot more...

What is it NOT going to contain?
    - GUI handling
    - Advanced, complex or specialized stuff that is rarely needed

Compilation guide:
To generate Makefile for your platform and compiler use the CMake tool. The library has no external dependencies and does not require any special tuning which makes the configuration and compilation process really straightforward. Note that creating a static version of the library is not supported.

Supported platforms:
One of the primary goals of the library is to be <b>cross-platform</b> and to avoid ugly platform or compiler specific hacks. Basically, it should be possible to build the library on any platform using <em>C++ compiler</em> with decent support for modern standards (particularly templates). We have sucesfully compiled and used the library on the following platforms:
    - Microsoft Windows (32-bit, 64-bit), using Visual Studio compiler (version 2012 tested but older may work as well).
    - Linux (32-bit, 64-bit) using the GCC compiler (several versions including 4.1 and above tested).

License:
The library is licensed under the BSD license. Its text is included with the library and is also accessible from the documentation.

Authors:
    - Ondrej Danek, mail: ondrej.danek@gmail.com, web: http://www.ondrej-danek.net
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.