--------------------- ┌──────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐ │OSC │ │Contains all available│ │Contains all available│ │Contains all available│ ┌─────────────────────┐ ┌────────────────────────────────────────────┐ ├──────────────────┤ ┌───────────────────┐ ┌───────┐ ┌────────────────────────────────────────────────────────────────────────────┐ ┌───────────────────────────────┐ ├──────────────────────┤ ├──────────────────────┤ ├──────────────────────┤ │For easy usage │ │Standalone usable (without .facades).│ │+open() │ │.typing.BackendType│ │Sender │ │Requires to import the backend of choice (and to install it's dependencies).│ │Replaceable by another backend.│ │messages for sending. │ │atomic data types. │ │events, issued by │ ├─────────────────────┤ ├────────────────────────────────────────────┤ │+create_sender() │---├───────────────────┤ ├───────┤ ├────────────────────────────────────────────────────────────────────────────┤ ├───────────────────────────────┤ │ │ │ │ │incoming messages. │ │ │ └────────────────────────────────────────────┘ │+create_receiver()│ └───────────────────┘ │+send()│ └────────────────────────────────────────────────────────────────────────────┘ └───────────────────────────────┘ └──────────────────────┘ └──────────────────────┘ │ │ └─────────────────────┘ │+run() │ └───────┘ └──────────────────────┘ │+close() │ | └──────────────────┘ | | | ┌──────────┐ ┌─────────────────────┐ │Message │ │Receiver │ ├──────────┤ ├─────────────────────┤ │+address │ │+register_handler() │ │+typetags │ │+unregister_handler()│ │+arguments│ └─────────────────────┘ └──────────┘