Welcome to the Scalable UDP Server for Low-Latency Data Transmission! This repository offers an advanced open-source IoT solution designed to deliver real-time sensor data efficiently. Our server focuses on low-latency humidity data transmission, ensuring that you receive your data when you need it most.
Download the latest release and start your journey with us!
- Real-Time Data Transmission: Our server efficiently handles low-latency data transmission using UDP.
- Modular Design: Easily extend the server with additional modules as your needs grow.
- Extensive Logging: Track your server's performance and data flow with built-in logging capabilities.
- Simulation Modes: Test your setup with simulated data before deploying to production.
- Containerization with Docker: Simplify deployment and scaling with Docker support.
- Integrated CI/CD Workflows: Streamline your development process with continuous integration and delivery.
- Open Source: Contribute to our project and help us improve!
To get started, follow these steps to install the server on your machine.
- Python 3.7 or higher
- Docker (optional, but recommended)
- Git
Open your terminal and run the following command:
git clone https://github.com/hari-vdh/Scalable-UDP-Server-for-Low-Latency-Data-Transmission.git
cd Scalable-UDP-Server-for-Low-Latency-Data-Transmission
Use pip to install the required Python packages:
pip install -r requirements.txt
If you prefer to run the server using Docker, you can build and run the Docker image with:
docker build -t scalable-udp-server .
docker run -p 8080:8080 scalable-udp-server
Once you have installed the server, you can start using it to transmit humidity data.
To start the server, run the following command:
python server.py
The server will listen for incoming UDP packets on the specified port.
You can send data to the server using any UDP client. Here is a simple example using Python:
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 8080
MESSAGE = b"Humidity: 45%"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
Logs are saved in the logs
directory. You can view the logs to monitor data transmission and server performance.
The server configuration is stored in a config.json
file. You can modify the following settings:
- host: The IP address the server will listen on.
- port: The port number for incoming data.
- log_level: The level of logging (e.g., DEBUG, INFO, WARNING).
Example config.json
:
{
"host": "0.0.0.0",
"port": 8080,
"log_level": "INFO"
}
We provide a set of tests to ensure the server operates as expected. To run the tests, use the following command:
pytest tests/
You can add your own tests in the tests
directory.
We welcome contributions! If you would like to contribute to the project, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
If you have any questions or issues, please check the Releases section for updates or create an issue in the repository.
Thank you for using the Scalable UDP Server for Low-Latency Data Transmission! We hope you find it useful for your IoT projects. Happy coding!