Skip to content

Commit f4b4fa7

Browse files
committed
Update README: add CRTP client base, ESP-IDF platform, full file listing
1 parent c989934 commit f4b4fa7

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ This library provides the protocol foundation (encoding, decoding, message frami
1212
- **IOTMP message framing** — protobuf-style varint fields with support for all message types (CONNECT, RUN, DESCRIBE, START_STREAM, STOP_STREAM, STREAM_DATA, KEEP_ALIVE, etc.)
1313
- **Lightweight value type** (`iotmp_value`) — dynamic JSON-like data model at ~12 bytes per value on 32-bit targets
1414
- **Resource model** — register input, output, and input/output callbacks with `operator=`
15+
- **CRTP client base** (`iotmp_client_base`) — complete client logic (authentication, message handling, streaming, keepalive) with zero-overhead compile-time polymorphism. Platform clients only implement `send_bytes` and `recv_bytes`.
1516
- **Header-only** — no compilation needed, just add the include path
1617
- **Zero platform dependencies** — pure C++17, works on any platform with a conforming compiler
1718

@@ -23,8 +24,9 @@ This library is designed to be consumed by platform-specific IOTMP client librar
2324

2425
| Platform | Repository |
2526
|----------|------------|
27+
| Arduino / ESP32 / ESP8266 | [IOTMP-Arduino](https://github.com/thinger-io/IOTMP-Arduino) |
28+
| ESP-IDF (native) | [IOTMP-ESPIDF](https://github.com/thinger-io/IOTMP-ESPIDF) |
2629
| Zephyr RTOS | [IOTMP-Zephyr](https://github.com/thinger-io/IOTMP-Zephyr) |
27-
| Arduino / ESP32 | [IOTMP-Arduino](https://github.com/thinger-io/iotmp-arduino) |
2830

2931
### Direct usage
3032

@@ -131,15 +133,18 @@ c++ -std=c++17 -I../../include -o test_protocol test_protocol.cpp
131133

132134
```
133135
include/thinger/iotmp/core/
136+
├── iotmp_client.hpp # CRTP client base (auth, messages, streams, keepalive)
134137
├── iotmp_value.hpp # Lightweight dynamic value type
135-
├── pson_types.hpp # PSON wire type enum
136-
├── pson_encoder.hpp # PSON binary encoder (template)
137-
├── pson_decoder.hpp # PSON binary decoder (template)
138+
├── iotmp_resource.hpp # Resource model (input/output callbacks)
139+
├── iotmp_message.hpp # Message model (types, fields, framing)
138140
├── iotmp_encoder.hpp # IOTMP message encoder
139141
├── iotmp_decoder.hpp # IOTMP message decoder
140-
├── iotmp_message.hpp # Message model (types, fields, framing)
141-
├── iotmp_resource.hpp # Resource model (input/output callbacks)
142+
├── pson_encoder.hpp # PSON binary encoder (template)
143+
├── pson_decoder.hpp # PSON binary decoder (template)
144+
├── pson_types.hpp # PSON wire type enum
142145
├── iotmp_adapters.hpp # I/O adapters (memory, string, null writers)
146+
├── iotmp_compat.hpp # Operators (>> <<) and platform macros
147+
├── iotmp_log.hpp # Unified logging macros
143148
└── iotmp_types.hpp # Common type aliases
144149
```
145150

0 commit comments

Comments
 (0)