- Usage
- Settings
- Modules
- Admin
- ???
- Client
- ???
- Admin
- Introspection
- ???
- Receive
- ???
- Route
- ???
- Send
- ???
- Validate
- ???
When creating a project, it has become instinctual or even habitual to bring in code and libraries from other sources. The intention usually being to:
- Use code that has been written by the experts in their field.
- Use code that has been fully tested and proven to work.
This is good in principle but tends to break down in practice. The time saved by using code written by others is lost when:
- Trying to find where a bug is occurring
- Rewriting code and redoing tests when the "other" code changes
- Code bloat from dependencies inheriting dependencies inheriting dependencies...
So understanding the trade-offs and where to draw the line is important.
C/C++
For this project, these are the only allowed dependencies:
Language | Dependency | Version | Reason |
---|---|---|---|
C++ | doctest | 2.14 or greater |
A unit-test framework |
C | musl libc | 1.2.5 or greater |
A replacement for GNU libc |
C | ZHL | A collection of header libraries |
Note: This project will be written in the C Programming Language, however the testing framework "doctest" requires C++.
Python
The Python scripting language is used to write support programs for the project. Only the built-in functionality of Python will be used.
No additional or external Python libraries will be used.