Skip to content

codehubbers/msg-sdk-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

msg-sdk-go

A modular Go SDK for secure, end-to-end encrypted messaging over the command line. Built on the Noise Protocol Framework, the SDK enables encrypted communication using Noise handshakes and supports both TCP and WebSocket transports. It provides a flexible foundation for building secure peer-to-peer or client-server messaging tools in Go.

Project Status

This project is in early development. The initial scaffolding, interface definitions, and architecture layout are currently being implemented.

Overview

This SDK provides the core components for building encrypted messaging clients:

  • Noise-based encrypted sessions using Noise_XX_25519_AESGCM_SHA256
  • Abstraction over multiple transport layers (TCP and WebSocket)
  • Keypair and peer identity management
  • Session lifecycle and message exchange logic
  • A command-line interface (CLI) for interacting with the SDK

Key Features

  • Noise protocol handshake (mutual authentication and encryption)
  • Peer-to-peer and client-server support
  • Abstract transport layer with interchangeable backends (TCP, WebSocket)
  • CLI commands for initiating sessions, sending, and receiving encrypted messages
  • In-memory or file-based session persistence
  • Modular, extensible architecture to support future protocols (e.g., QUIC)

Architecture

Getting Started

Requirements

  • Go 1.21 or higher
  • Git

Clone the Repository

git clone https://github.com/JumaOchi/msg-sdk-go.git
cd msg-sdk-go

Build the Project

go build

Run the App

./msg-sdk-go

Project Structure

/
├── main.go        // Entry point
├── go.mod         // Go module definition
├── transport/     // Transport abstraction (TCP, WebSocket)
├── identity/      // Keypair generation and storage
├── cli/           // CLI logic and command handling
└── README.md      // Project documentation

Roadmap

  • Implement TCP transport
  • Establish Noise_XX session setup
  • Add WebSocket transport
  • Add CLI command for connect
  • Add CLI command for send
  • Add CLI command for receive
  • Add optional file-based session persistence

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a new feature branch
  3. Open a pull request with a clear description

Please follow the existing file structure and keep commits clear and focused.

License

To be added. MIT or Apache-2.0 recommended.

Maintainers

Developed and maintained by https://codehubbers.com/

GitHub: github.com/codehubbers

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages