c-template
main_page.c
Go to the documentation of this file.
1 /*! \mainpage c-template
2  *
3  * \section Goal
4  *
5  * To minimize the overhead in C development, and give a developer experience similar to Golang.
6  *
7  * \section Introduction
8  *
9  * `c-template` is a template repository intended to serve as a base layer for easier, and safer C development by encouraging best practices and providing well-tested components.
10  * It is intended to be used when starting a new C project by cloning the repository, and starting to work in the cloned repo, although you could copy the functionality into your respective libraries.
11  * It provides build management through CMake, unit testing with CMocka, dynamic analysis with Valgrind.
12  *
13  * Doxygen is used for parsing your code comments turning it into docuementation with a single command.
14  * This encourages writing comments, updating those comments, and having always up to date documentation.
15  *
16  * In additional to this, commonly used functionality is included to reduce the need for rewriting functionality in each new library.
17  *
18  * \section Reusable-Code Reusable Code
19  * - thread safe logger ( \link logger.h \endlink )
20  * - color coded messages sent to stdout
21  * - optionally writes to a log file as well as sends to stdout
22  * - array length and size checking ( \link array_len.h \endlink )
23  * - note: doesn't work properly on `char*` data types
24  * - ansi color codes ( \link colors.h \endlink )
25  * - includes helper functions to created colored `char*`
26  * - can write to files as well
27  * - random number and string generateion ( \link random.h \endlink )
28  * - CLI template ( \link command_line.h \endlink )
29  * - example implementation in \link cli.c \endlink
30  * - socket network tooling
31  * - utility functions, socket creation, and client usage ( \link socket.h \endlink )
32  * - socker server ( \link socket_server.h \endlink )
33  *
34  * \section Usage
35  *
36  * \subsection New-Project New Project
37  *
38  * If starting a new project, the best way to use `c-template` is to clone the repo and use it as the base of your new project
39  *
40  * \subsection Existing-Project Existing Project
41  *
42  * If using an existing project, you'll probably want to juse copy & paste the code and configs in this repo.
43  * Eventually installation via `make install` in a manner that places the code into locations like `/usr/include` will eventually be done but is not there yet.
44  *
45  * \section Examples
46  *
47  * For now you'll want to look at the various `*_test.c` files. Eventually dedicated examples will be written.
48  *
49  *
50  *
51  * etc...
52  */