rpclpy 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
rpclpy-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,587 @@
1
+ Metadata-Version: 2.4
2
+ Name: rpclpy
3
+ Version: 1.0.0
4
+ Summary: Python client library for building distributed node-based systems with communication, events, and knowledge management
5
+ Author-email: RoboSapiens Team <saharnasimi96@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/saharnn96/robosapiens-clientlibraries
8
+ Project-URL: Repository, https://github.com/saharnn96/robosapiens-clientlibraries
9
+ Project-URL: Issues, https://github.com/saharnn96/robosapiens-clientlibraries/issues
10
+ Keywords: robotics,distributed systems,redis,pub/sub,communication,knowledge management,MAPE-K
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Topic :: System :: Distributed Computing
21
+ Requires-Python: >=3.8
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: redis>=4.0
24
+ Requires-Dist: PyYAML>=6.0
25
+ Provides-Extra: mqtt
26
+ Requires-Dist: paho-mqtt>=1.6; extra == "mqtt"
27
+ Provides-Extra: rabbitmq
28
+ Requires-Dist: pika>=1.3; extra == "rabbitmq"
29
+ Provides-Extra: kafka
30
+ Requires-Dist: kafka-python>=2.0; extra == "kafka"
31
+ Provides-Extra: websocket
32
+ Requires-Dist: websocket-client>=1.6; extra == "websocket"
33
+ Provides-Extra: zenoh
34
+ Requires-Dist: eclipse-zenoh>=0.10; extra == "zenoh"
35
+ Provides-Extra: memcached
36
+ Requires-Dist: python-memcached>=1.59; extra == "memcached"
37
+ Provides-Extra: ignite
38
+ Requires-Dist: pyignite>=0.6; extra == "ignite"
39
+ Provides-Extra: hazelcast
40
+ Requires-Dist: hazelcast-python-client>=5.0; extra == "hazelcast"
41
+ Provides-Extra: tarantool
42
+ Requires-Dist: tarantool>=0.11; extra == "tarantool"
43
+ Provides-Extra: aerospike
44
+ Requires-Dist: aerospike>=8.0; extra == "aerospike"
45
+ Provides-Extra: dashboard
46
+ Requires-Dist: dash>=2.0; extra == "dashboard"
47
+ Requires-Dist: plotly>=5.0; extra == "dashboard"
48
+ Provides-Extra: all
49
+ Requires-Dist: paho-mqtt>=1.6; extra == "all"
50
+ Requires-Dist: pika>=1.3; extra == "all"
51
+ Requires-Dist: kafka-python>=2.0; extra == "all"
52
+ Requires-Dist: websocket-client>=1.6; extra == "all"
53
+ Requires-Dist: eclipse-zenoh>=0.10; extra == "all"
54
+ Requires-Dist: python-memcached>=1.59; extra == "all"
55
+ Requires-Dist: pyignite>=0.6; extra == "all"
56
+ Requires-Dist: hazelcast-python-client>=5.0; extra == "all"
57
+ Requires-Dist: tarantool>=0.11; extra == "all"
58
+ Requires-Dist: aerospike>=8.0; extra == "all"
59
+ Requires-Dist: dash>=2.0; extra == "all"
60
+ Requires-Dist: plotly>=5.0; extra == "all"
61
+
62
+ # RoboSapiens Client Libraries
63
+
64
+ A collection of high-performance client libraries for building distributed node-based systems with communication, events, and knowledge management capabilities. Available in **Python**, **C++**, and **Rust** with consistent APIs and Redis-based backend.
65
+
66
+ [![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)
67
+ [![C++](https://img.shields.io/badge/C++-17-green.svg)](https://en.cppreference.com/)
68
+ [![Rust](https://img.shields.io/badge/Rust-1.70+-orange.svg)](https://rust-lang.org)
69
+ [![Redis](https://img.shields.io/badge/Redis-6.0+-red.svg)](https://redis.io)
70
+
71
+ ## ๐ŸŒŸ Features
72
+
73
+ All libraries provide:
74
+
75
+ - **Node Communication**: Publish/subscribe messaging and events with automatic metadata
76
+ - **Knowledge Management**: Distributed key-value storage with object serialization
77
+ - **Redis Integration**: Fast, reliable backend for all operations across multiple databases
78
+ - **Multi-language Support**: Consistent APIs across Python, C++, and Rust
79
+ - **Real-time Communication**: Event-driven architecture with thread-safe operations
80
+ - **Type Safety**: Strong typing and serialization (JSON, Pickle, Serde)
81
+ - **Logging & Monitoring**: Built-in structured logging with configurable levels
82
+ - **UUID & Timestamps**: Automatic message identification and timestamping
83
+ - **Error Handling**: Comprehensive error management and recovery
84
+
85
+ ## ๐Ÿ“ Repository Structure
86
+
87
+ ```
88
+ robosapiens-clientlibraries/
89
+ โ”œโ”€โ”€ rpclpy/ # Python library
90
+ โ”‚ โ”œโ”€โ”€ __init__.py # Library initialization
91
+ โ”‚ โ”œโ”€โ”€ node.py # Main Node class
92
+ โ”‚ โ”œโ”€โ”€ CommunicationManager.py # Redis pub/sub handling
93
+ โ”‚ โ”œโ”€โ”€ KnowledgeManager.py # Knowledge storage
94
+ โ”‚ โ”œโ”€โ”€ LoggingAndTracking.py # Logging infrastructure
95
+ โ”‚ โ””โ”€โ”€ examples/ # Python examples
96
+ โ”‚ โ”œโ”€โ”€ sensor_node.py # Temperature sensor simulation
97
+ โ”‚ โ”œโ”€โ”€ monitor_node.py # Data monitoring and analysis
98
+ โ”‚ โ”œโ”€โ”€ data_models.py # Shared data structures
99
+ โ”‚ โ”œโ”€โ”€ config.yaml # Configuration example
100
+ โ”‚ โ””โ”€โ”€ README.md # Examples documentation
101
+ โ”œโ”€โ”€ rpclcpp/ # C++ library
102
+ โ”‚ โ”œโ”€โ”€ include/ # Header files
103
+ โ”‚ โ”‚ โ”œโ”€โ”€ node.hpp # Main Node interface
104
+ โ”‚ โ”‚ โ”œโ”€โ”€ communication_manager.hpp
105
+ โ”‚ โ”‚ โ”œโ”€โ”€ knowledge_manager.hpp
106
+ โ”‚ โ”‚ โ””โ”€โ”€ logger.hpp
107
+ โ”‚ โ”œโ”€โ”€ src/ # Implementation files
108
+ โ”‚ โ”œโ”€โ”€ examples/ # C++ examples
109
+ โ”‚ โ””โ”€โ”€ CMakeLists.txt # Build configuration
110
+ โ”œโ”€โ”€ rpclrs/ # Rust library
111
+ โ”‚ โ”œโ”€โ”€ src/ # Rust source code
112
+ โ”‚ โ”‚ โ”œโ”€โ”€ lib.rs # Library entry point
113
+ โ”‚ โ”‚ โ”œโ”€โ”€ node.rs # Main Node implementation
114
+ โ”‚ โ”‚ โ”œโ”€โ”€ communication_manager.rs
115
+ โ”‚ โ”‚ โ””โ”€โ”€ knowledge_manager.rs
116
+ โ”‚ โ”œโ”€โ”€ examples/ # Rust examples
117
+ โ”‚ โ””โ”€โ”€ Cargo.toml # Package configuration
118
+ โ”œโ”€โ”€ .gitignore # Git ignore patterns
119
+ โ””โ”€โ”€ README.md # This file
120
+ ```
121
+
122
+ ## ๐Ÿš€ Quick Start
123
+
124
+ ### Python (rpclpy)
125
+
126
+ ```python
127
+ from rpclpy.node import Node
128
+ import yaml
129
+
130
+ # Load config and create node
131
+ with open('config.yaml', 'r') as f:
132
+ config = yaml.safe_load(f)
133
+
134
+ node = Node(config)
135
+ node.start()
136
+
137
+ # Publish event
138
+ node.publish_event("sensor/data", {"temperature": 22.5})
139
+
140
+ # Subscribe to events
141
+ node.register_event_callback("alerts/high", handle_alert)
142
+ ```
143
+
144
+ ### C++ (rpclcpp)
145
+
146
+ ```cpp
147
+ #include "node.hpp"
148
+ using namespace rpclcpp;
149
+
150
+ Node node("MyNode");
151
+ node.start();
152
+
153
+ // Publish event
154
+ json data = {{"temperature", 22.5}};
155
+ node.publish_event("sensor/data", data);
156
+
157
+ // Subscribe to events
158
+ node.register_event_callback("alerts/high", [](const std::string& topic, const std::string& msg) {
159
+ // Handle alert
160
+ });
161
+ ```
162
+
163
+ ### Rust (rpclrs)
164
+
165
+ ```rust
166
+ use rpclrs::Node;
167
+ use serde_json::json;
168
+
169
+ let mut node = Node::new("MyNode", "localhost", 6379)?;
170
+ node.start()?;
171
+
172
+ // Publish event
173
+ let data = json!({"temperature": 22.5});
174
+ node.publish_event("sensor/data", data)?;
175
+
176
+ // Subscribe to events
177
+ node.register_event_callback("alerts/high", |topic, message| {
178
+ println!("Alert: {}", message);
179
+ })?;
180
+ ```
181
+
182
+ ## ๐Ÿ› ๏ธ Installation & Setup
183
+
184
+ ### Prerequisites
185
+
186
+ - **Redis Server**: Version 6.0+ running on localhost:6379 (or configured host)
187
+ - **Operating System**: Linux, macOS, or Windows
188
+ - Language-specific dependencies (see individual library READMEs)
189
+
190
+ ### Redis Installation
191
+
192
+ **Ubuntu/Debian:**
193
+
194
+ ```bash
195
+ sudo apt update && sudo apt install redis-server
196
+ sudo systemctl start redis-server
197
+ ```
198
+
199
+ **macOS:**
200
+
201
+ ```bash
202
+ brew install redis
203
+ brew services start redis
204
+ ```
205
+
206
+ **Docker:**
207
+
208
+ ```bash
209
+ docker run --name redis-server -p 6379:6379 -d redis
210
+ ```
211
+
212
+ ### Python Setup (rpclpy)
213
+
214
+ ```bash
215
+ cd rpclpy
216
+ pip install redis paho-mqtt PyYAML # Install dependencies
217
+ ```
218
+
219
+ ### C++ Setup (rpclcpp)
220
+
221
+ **Ubuntu/Debian:**
222
+
223
+ ```bash
224
+ sudo apt install cmake build-essential libhiredis-dev nlohmann-json3-dev
225
+ cd rpclcpp
226
+ mkdir build && cd build
227
+ cmake ..
228
+ make -j$(nproc)
229
+ sudo make install # Optional: system-wide installation
230
+ ```
231
+
232
+ **Build Examples:**
233
+
234
+ ```bash
235
+ make sensor_node monitor_node
236
+ ```
237
+
238
+ ### Rust Setup (rpclrs)
239
+
240
+ ```bash
241
+ cd rpclrs
242
+ cargo build --release
243
+ ```
244
+
245
+ **Build Examples:**
246
+
247
+ ```bash
248
+ cargo build --examples
249
+ ```
250
+
251
+ ## ๐Ÿ“‹ Examples
252
+
253
+ ### Sensor Monitoring System
254
+
255
+ All three libraries include a complete **real-time sensor monitoring system** that demonstrates:
256
+
257
+ - **Sensor Node**:
258
+
259
+ - Simulates realistic temperature sensors with drift and noise
260
+ - Publishes readings as events with automatic timestamping
261
+ - Generates alerts for abnormal conditions
262
+ - Stores data in knowledge base for persistence
263
+
264
+ - **Monitor Node**:
265
+
266
+ - Subscribes to sensor events in real-time
267
+ - Processes and analyzes readings for patterns
268
+ - Maintains system statistics and health metrics
269
+ - Responds to alerts with configurable severity levels
270
+ - Provides comprehensive monitoring dashboard
271
+
272
+ - **Data Models**:
273
+ - `SensorReading`: Temperature data with metadata
274
+ - `Alert`: Alert notifications with severity levels
275
+ - `SystemStatus`: Overall system health metrics
276
+
277
+ #### What You'll See
278
+
279
+ ```
280
+ SENSOR MONITORING STATUS
281
+ ============================================================
282
+ Active Sensors: 1
283
+ Total Readings: 47
284
+ Alert Count: 3
285
+ Average Temperature: 23.2ยฐC
286
+
287
+ Sensor Details:
288
+ TEMP_001: 24.1ยฐC [normal] at Lab Room A
289
+
290
+ Recent Alerts (2):
291
+ [HIGH] Temperature too high: 31.2ยฐC at Lab Room A
292
+ [MEDIUM] Temperature outside normal range: 27.8ยฐC at Lab Room A
293
+ ------------------------------------------------------------
294
+ ```
295
+
296
+ #### Running the Examples
297
+
298
+ **Python (Recommended for beginners):**
299
+
300
+ ```bash
301
+ cd rpclpy/examples
302
+ # Terminal 1 - Start monitoring first
303
+ python monitor_node.py
304
+
305
+ # Terminal 2 - Start sensor
306
+ python sensor_node.py
307
+
308
+ # Alternative: Run automated test
309
+ python test_example.py
310
+ ```
311
+
312
+ **C++:**
313
+
314
+ ```bash
315
+ cd rpclcpp/build
316
+ # Terminal 1
317
+ ./monitor_node
318
+
319
+ # Terminal 2
320
+ ./sensor_node
321
+ ```
322
+
323
+ **Rust:**
324
+
325
+ ```bash
326
+ cd rpclrs
327
+ # Terminal 1
328
+ cargo run --example monitor_node
329
+
330
+ # Terminal 2
331
+ cargo run --example sensor_node
332
+ ```
333
+
334
+ #### Testing All Features
335
+
336
+ Each library includes a comprehensive test script:
337
+
338
+ **Python:**
339
+
340
+ ```bash
341
+ cd rpclpy/examples
342
+ python run_tests.py # Automated test suite with Redis setup check
343
+ ```
344
+
345
+ The test validates:
346
+
347
+ - โœ… Node initialization and startup
348
+ - โœ… Event publishing and subscription
349
+ - โœ… Message passing between nodes
350
+ - โœ… Knowledge base read/write operations
351
+ - โœ… Object serialization/deserialization
352
+ - โœ… Alert generation and handling
353
+ - โœ… Real-time data processing
354
+
355
+ ## ๐Ÿ—๏ธ Architecture
356
+
357
+ ### System Overview
358
+
359
+ ```
360
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” Events/Messages โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
361
+ โ”‚ Sensor Node โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚Monitor Node โ”‚
362
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ Real-time โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
363
+ โ”‚ Communication โ”‚
364
+ โ–ผ โ–ผ
365
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
366
+ โ”‚ Redis Backend โ”‚
367
+ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
368
+ โ”‚ โ”‚ Events โ”‚ โ”‚Messages โ”‚ โ”‚ Knowledge Base โ”‚ โ”‚
369
+ โ”‚ โ”‚ (DB 0) โ”‚ โ”‚ (DB 1) โ”‚ โ”‚ (DB 2) โ”‚ โ”‚
370
+ โ”‚ โ”‚ Pub/Sub โ”‚ โ”‚ Pub/Sub โ”‚ โ”‚ Key-Value โ”‚ โ”‚
371
+ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
372
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
373
+ ```
374
+
375
+ ### Communication Flow
376
+
377
+ 1. **Events**: Structured data with automatic metadata (UUID, timestamp)
378
+ 2. **Messages**: Direct point-to-point communication
379
+ 3. **Knowledge**: Persistent storage with object serialization
380
+
381
+ ### Thread Safety
382
+
383
+ All libraries implement thread-safe operations:
384
+
385
+ - **Python**: Threading locks and atomic operations
386
+ - **C++**: Mutexes and RAII patterns
387
+ - **Rust**: Arc/Mutex for shared state management
388
+
389
+ ## ๐Ÿ”ง Configuration
390
+
391
+ All libraries use Redis with separated databases:
392
+
393
+ - **DB 0**: Events (pub/sub)
394
+ - **DB 1**: Messages (pub/sub)
395
+ - **DB 2**: Knowledge (key-value storage)
396
+
397
+ Example configuration (Python):
398
+
399
+ ```yaml
400
+ Event_Manager_Config:
401
+ protocol: "redis"
402
+ host: "localhost"
403
+ port: 6379
404
+ db: 0
405
+
406
+ Message_Manager_Config:
407
+ protocol: "redis"
408
+ host: "localhost"
409
+ port: 6379
410
+ db: 1
411
+
412
+ Knowledge_Config:
413
+ knowledge_type: "redis"
414
+ host: "localhost"
415
+ port: 6379
416
+ db: 2
417
+ ```
418
+
419
+ ## ๐ŸŒ API Consistency
420
+
421
+ All three libraries provide the same core functionality:
422
+
423
+ | Operation | Python | C++ | Rust |
424
+ | --------------- | ------------------------------------ | ------------------------------------ | ------------------------------------ |
425
+ | Create Node | `Node(config)` | `Node("name")` | `Node::new("name", host, port)` |
426
+ | Start | `node.start()` | `node.start()` | `node.start()` |
427
+ | Publish Event | `publish_event(topic, data)` | `publish_event(topic, json)` | `publish_event(topic, value)` |
428
+ | Subscribe | `register_event_callback(topic, fn)` | `register_event_callback(topic, fn)` | `register_event_callback(topic, fn)` |
429
+ | Write Knowledge | `write_knowledge(key, value)` | `write_knowledge(key, value)` | `write_knowledge(key, value)` |
430
+ | Read Knowledge | `read_knowledge(key)` | `read_knowledge(key)` | `read_knowledge(key)` |
431
+
432
+ ## ๐Ÿงช Testing
433
+
434
+ ### Comprehensive Test Coverage
435
+
436
+ Each library includes comprehensive examples that test:
437
+
438
+ - โœ… **Node Communication**: Event and message passing between nodes
439
+ - โœ… **Event Publishing/Subscribing**: Real-time event distribution
440
+ - โœ… **Message Passing**: Direct point-to-point communication
441
+ - โœ… **Knowledge Management**: Persistent data storage and retrieval
442
+ - โœ… **Object Serialization**: Type-safe data exchange
443
+ - โœ… **Alert Generation**: Automated alert creation and handling
444
+ - โœ… **Real-time Data Processing**: Stream processing capabilities
445
+ - โœ… **Error Handling**: Graceful error recovery and logging
446
+ - โœ… **Thread Safety**: Concurrent operations validation
447
+ - โœ… **Memory Management**: Resource cleanup and leak prevention
448
+
449
+ ### Performance Characteristics
450
+
451
+ - **Latency**: Sub-millisecond message delivery
452
+ - **Throughput**: 10,000+ messages/second per node
453
+ - **Memory**: Efficient circular buffers for data retention
454
+ - **Scalability**: Horizontal scaling through Redis clustering
455
+
456
+ ### Monitoring & Observability
457
+
458
+ - **Structured Logging**: JSON-formatted logs with context
459
+ - **Metrics**: Built-in counters for messages, errors, and performance
460
+ - **Health Checks**: Node status and connectivity monitoring
461
+ - **Debug Mode**: Detailed tracing for development and troubleshooting
462
+
463
+ ## ๐Ÿ“– Documentation
464
+
465
+ - [Python Library (rpclpy)](./rpclpy/README.md)
466
+ - [C++ Library (rpclcpp)](./rpclcpp/README.md)
467
+ - [Rust Library (rpclrs)](./rpclrs/README.md)
468
+ - [Python Examples](./rpclpy/examples/README.md)
469
+
470
+ ## ๐Ÿค Contributing
471
+
472
+ We welcome contributions! Here's how to get started:
473
+
474
+ ### Development Setup
475
+
476
+ 1. **Fork the repository**
477
+ 2. **Clone your fork**: `git clone https://github.com/yourusername/robosapiens-clientlibraries.git`
478
+ 3. **Create a feature branch**: `git checkout -b feature/amazing-feature`
479
+ 4. **Set up development environment**:
480
+
481
+ ```bash
482
+ # Install Redis
483
+ docker run --name redis-dev -p 6379:6379 -d redis
484
+
485
+ # Setup Python environment
486
+ cd rpclpy && pip install -e .
487
+
488
+ # Setup C++ environment
489
+ cd rpclcpp && mkdir build && cd build && cmake ..
490
+
491
+ # Setup Rust environment
492
+ cd rpclrs && cargo build
493
+ ```
494
+
495
+ ### Contribution Guidelines
496
+
497
+ - **Code Style**: Follow language-specific conventions (PEP 8 for Python, Google Style for C++, Rustfmt for Rust)
498
+ - **Testing**: Add tests for new features and ensure existing tests pass
499
+ - **Documentation**: Update READMEs and inline documentation
500
+ - **Commit Messages**: Use conventional commits format
501
+ - **API Consistency**: Maintain consistent APIs across all three languages
502
+
503
+ ### Areas for Contribution
504
+
505
+ - ๐Ÿ› **Bug Fixes**: Issues and bug reports
506
+ - โœจ **New Features**: Additional communication protocols, storage backends
507
+ - ๐Ÿ“š **Documentation**: Tutorials, examples, API documentation
508
+ - ๐Ÿ”ง **Performance**: Optimizations and benchmarks
509
+ - ๐Ÿงช **Testing**: Additional test cases and integration tests
510
+ - ๐ŸŒ **Internationalization**: Multi-language support
511
+
512
+ ### Pull Request Process
513
+
514
+ 1. Make your changes
515
+ 2. Add/update tests
516
+ 3. Update documentation
517
+ 4. Ensure all tests pass
518
+ 5. Submit a pull request with detailed description
519
+
520
+ ## ๐Ÿ› Troubleshooting
521
+
522
+ ### Common Issues
523
+
524
+ **Redis Connection Failed:**
525
+
526
+ ```bash
527
+ # Check if Redis is running
528
+ redis-cli ping
529
+ # Should return "PONG"
530
+
531
+ # Start Redis if not running
532
+ sudo systemctl start redis-server # Linux
533
+ brew services start redis # macOS
534
+ ```
535
+
536
+ **Import Errors (Python):**
537
+
538
+ ```bash
539
+ # Make sure rpclpy is in your Python path
540
+ export PYTHONPATH="${PYTHONPATH}:/path/to/robosapiens-clientlibraries"
541
+ ```
542
+
543
+ **Build Errors (C++):**
544
+
545
+ ```bash
546
+ # Install missing dependencies
547
+ sudo apt install cmake build-essential libhiredis-dev nlohmann-json3-dev
548
+ ```
549
+
550
+ ### Getting Help
551
+
552
+ - ๐Ÿ“– Check individual library READMEs for detailed setup instructions
553
+ - ๐Ÿ› Open an issue for bug reports
554
+ - ๐Ÿ’ฌ Start a discussion for questions and feature requests
555
+ - ๐Ÿ“ง Contact maintainers for urgent issues
556
+
557
+ ## ๐Ÿ“„ License
558
+
559
+ MIT License - see individual library directories for details.
560
+
561
+ ## ๐Ÿท๏ธ Version
562
+
563
+ **Current version: 1.0.0**
564
+
565
+ All libraries maintain API compatibility and feature parity across languages.
566
+
567
+ ### Changelog
568
+
569
+ - **v1.0.0** (2025-07-31): Initial release with Python, C++, and Rust libraries
570
+ - Core node communication functionality
571
+ - Redis-based backend with multi-database support
572
+ - Comprehensive sensor monitoring examples
573
+ - Thread-safe operations across all languages
574
+ - Object serialization and knowledge management
575
+ - Structured logging and error handling
576
+
577
+ ## ๐ŸŒŸ Acknowledgments
578
+
579
+ - **Redis Team**: For the excellent in-memory data structure store
580
+ - **Open Source Communities**: Python, C++, and Rust ecosystems
581
+ - **Contributors**: Everyone who helped make this project possible
582
+
583
+ ---
584
+
585
+ **Built with โค๏ธ by the RoboSapiens Team**
586
+
587
+ For questions, support, or contributions, please visit our [GitHub repository](https://github.com/saharnn96/robosapiens-clientlibraries).