summaryrefslogtreecommitdiff
path: root/docs/source/codec/introduction.rst
blob: 8cda2ac8e58a1eb841e38ea55ef8e6ab297113f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
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