Skip to content

foxycorps/remus-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Remus

Remus is a flexible and efficient network messaging library for Go that provides a comprehensive protocol for building distributed systems. It supports various message types including control messages, data operations, state management, edge computing, service discovery, and observability.

Go Reference Go Report Card License: MIT

Features

  • Flexible Message Protocol: Support for multiple message types with customizable flags, priorities, and TTLs
  • Builder Pattern: Fluent interface for constructing messages
  • Binary Encoding: Efficient binary message encoding and decoding
  • State Management: Built-in support for state synchronization and delta updates
  • Service Discovery: Service announcement and health check capabilities
  • Edge Computing: Support for deploying and managing edge functions
  • Observability: Integrated metrics, tracing, and logging
  • Stream Processing: Support for streaming data with start/end markers

Installation

go get github.com/foxycorps/remus-go

Quick Start

Basic Message Creation

// Create a simple request message
requestMsg := NewRequest(123, []byte("Hello, World!"))

// Create a response message
responseMsg := NewResponse(123, []byte("Response received"))

Using the Message Builder

// Create a custom message using the builder pattern
msg := NewMessage().
    WithType(MessageTypeRequest).
    WithRequestID(123).
    WithPriority(2).
    WithPayload([]byte("Custom payload")).
    Build()

Documentation

For detailed documentation covering all aspects of the library, including:

  • Message Types and Structure
  • Builder Pattern Usage
  • Service Discovery
  • State Management
  • Edge Computing
  • Observability
  • Stream Processing
  • Best Practices
  • Security Considerations

Please refer to our Technical Documentation.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

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

Author

Brayden Moon (@crazywolf132)

Organization

FoxyCorps

Protocol Version

Current protocol version: 2.0

Notes

  • Maximum message size is 64MB
  • Default TTL varies by message type
  • All timestamps are in microseconds
  • Messages are encoded in big-endian format

About

Remus Protocol in go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages