A very simplified and limited IO framework.
-
It is simple to use. It comes at cost.
- Count of callback funtions is minimized.
- Every object MUST inherit certain classes.
- Batteries included.
-
It is "portable" in the sense the ports of this framework to other languages and platforms should keep the same structure, allowing the programs using it be ported more easily.
- The core is decoupled from concrete implementations.
- Upper level protocols are "Sans-IO". They don't depend on concrete IO implementations. Instead they depend on the interfaces provided by the framework.
- Composition over inheritance -> can be ported C and Rust support
-
It is composable. The structure is a stack of objects.
- Wanna change the protocol in the stack? Just replace the layer object!
- Wanna access the same server using both TCP and UART? Just add a mux!
- Wanna access multiple upper layer protocols over the same low-level protocol (i.e. TCP)? Again, just add a mux!