Skip to content

pulse::net::proto - A production-grade, no-frills UDP protocol. Built for performance, reliability, and real-time systems. (Mirror)

License

Notifications You must be signed in to change notification settings

dequillem/pulsenet-proto

Repository files navigation

pulse::net::proto

pulse::net::proto

Overview

Welcome to the pulse::net::proto repository! This project offers a production-grade, no-frills UDP protocol designed for performance and reliability in real-time systems. Whether you are developing applications that require fast data transfer or need a dependable networking solution, this protocol provides a clean API and efficient implementation.

You can find the latest releases of pulse::net::proto here. Download the latest version and execute it to get started.

Features

  • Asynchronous Operation: Supports non-blocking operations to enhance performance.
  • Clean API: Simple and intuitive interface for easy integration.
  • Cross-Platform: Works seamlessly across various operating systems.
  • No External Dependencies: Lightweight design with no need for additional libraries.
  • CMake Support: Easy to build and integrate into existing projects.
  • Networking: Optimized for high-performance networking tasks.
  • C++23 Compatibility: Utilizes modern C++ features for better code quality.

Topics

This repository covers several important topics that enhance its usability and performance:

  • Asynchronous: The protocol operates without blocking the main thread, improving responsiveness.
  • Clean API: A straightforward interface that minimizes complexity.
  • CMake: Uses CMake for building and managing dependencies.
  • C++: Written in modern C++, ensuring efficiency and readability.
  • Cross-Platform: Compatible with major operating systems.
  • Networking: Focused on networking capabilities, particularly using UDP.
  • No Exception Handling: Designed to avoid exceptions for increased reliability.
  • No External Dependency: Fully self-contained, reducing the overhead of additional libraries.
  • Non-Blocking: Designed to handle multiple operations simultaneously without waiting.
  • Protocol: Implements a robust protocol for data transmission.
  • std::expected: Utilizes std::expected for error handling, making it easier to manage outcomes.

Getting Started

To get started with pulse::net::proto, follow these steps:

Prerequisites

Ensure you have the following installed:

  • A C++ compiler that supports C++23.
  • CMake (version 3.10 or higher).
  • Git for cloning the repository.

Installation

  1. Clone the repository:

    git clone https://github.com/dequillem/pulsenet-proto.git
    cd pulsenet-proto
  2. Build the project:

    mkdir build
    cd build
    cmake ..
    make
  3. Run the application:

    After building, you can find the executable in the build directory. Run it to see the protocol in action.

Usage

Once you have the application running, you can use the provided API to send and receive UDP packets. Here’s a simple example:

#include <pulse/net/proto.hpp>

int main() {
    pulse::net::proto::UDPClient client("localhost", 8080);
    client.send("Hello, World!");
    
    std::string response = client.receive();
    std::cout << "Received: " << response << std::endl;

    return 0;
}

This code snippet demonstrates how to create a UDP client, send a message, and receive a response.

Documentation

Comprehensive documentation is available in the docs directory. It covers:

  • API Reference
  • Example Use Cases
  • Performance Benchmarks

For detailed information, refer to the documentation files.

Contributing

We welcome contributions to pulse::net::proto! If you would like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them.
  4. Push your changes to your fork.
  5. Submit a pull request.

Please ensure your code follows the existing style and includes appropriate tests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Support

If you encounter any issues or have questions, feel free to open an issue in the repository. We appreciate your feedback and will respond as soon as possible.

For the latest updates and releases, visit the Releases section.

Acknowledgments

Thanks to all contributors and the community for their support. Your contributions help improve the project and make it more useful for everyone.


This README provides a comprehensive overview of the pulse::net::proto project. It aims to guide users from installation to usage, ensuring a smooth experience. For more details, always refer back to the documentation and the Releases section for the latest updates.