Sneaker is a collection of modern and versatile C++ components that are useful in many application development scenarios.
The designs and implementations in the library are based on the philosophy that each component has its own responsibility in answering one or more of the six aspects of all software systems, namely the “what”, “when”, “where”, “who”, “why” and “how”. The elegance and succinctness of the code intrinsically demonstrates the “how”. The design of each component and interface focuses on the “who”, “when” and “where” to clearly illustrate the interactions with other systems. Finally, good documentation and comments reflects the “what” and “why” to users.
In addition, the design of many components are heavily inspired from features and models from other high level programming languages that are either absent or not first-class citizens in the C++ world, such as the use of scoped context management and function decorators, which are all prevalent features in Python.
Sneaker is consisted of the following major components:
- libc - C utilities
- algorithm - a collection of advanced algorithms
- allocator - STL container allocator
- cache - in-memory cache management
- container - versatile data structures
- context - context management
- functional - versatile function wrappers that support asynchronous invocations
- I/O - general I/O utilities
- logging - extensible logging facilities
- json - JSON serialization, deserialization and schema validation
- threading - thread management and daemons
- utility - miscellaneous utilities
- testing - testing utilities
- Check out the documentations
- Build from source and install library
make && make install
- Read the wiki if you'd like to contribute
- Wiki home page
- Styles and Guidelines
- Development and Release Workflow
- Build Environments and Dependencies
- Goals and Roadmap
Sneaker is licensed under The MIT License.