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.
This project is in early development. The initial scaffolding, interface definitions, and architecture layout are currently being implemented.
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
- 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)
- Go 1.21 or higher
- Git
git clone https://github.com/JumaOchi/msg-sdk-go.git
cd msg-sdk-go
go build
./msg-sdk-go
/
├── 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
- 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
Contributions are welcome. To contribute:
- Fork the repository
- Create a new feature branch
- Open a pull request with a clear description
Please follow the existing file structure and keep commits clear and focused.
To be added. MIT or Apache-2.0 recommended.
Developed and maintained by https://codehubbers.com/
GitHub: github.com/codehubbers