summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/source/codec/introduction.rst12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/source/codec/introduction.rst b/docs/source/codec/introduction.rst
new file mode 100644
index 0000000..8cda2ac
--- /dev/null
+++ b/docs/source/codec/introduction.rst
@@ -0,0 +1,12 @@
+Introduction
+============
+
+The codec module provides basic functionality and is in fact a vital component for almost all other modules.
+It's the module which provides the separation of logical structure and encoding of data.
+
+I am not aware of any programming languages which provide compile time separation of those concerns.
+For the less powerful compile time reflection capabilities there's limited support in some languages.
+C++26, regular C++ and Rust with minor additional hints etc come to mind. But this is only on native data.
+
+The separation enables treating data purely declaretively instead of imperative actions when moving it across encoding boundaries.
+A regular file has the structure