Skip to content
Muslu Yüksektepe

wcemail-protocol

An experimental email transport protocol written in Go, with its own server and client library, encryption layer and storage.

wcemail-protocol is a prototype of a new protocol I developed in Go for carrying email between servers. Today email is mostly carried over SMTP; in this project I wanted to try a different way of transporting it with my own code. It is an experimental project and was not built for production use.

Purpose

SMTP is a decades-old protocol, and concerns such as encryption are handled by layers added to it later. With wcemail-protocol I wanted to test what a design would look like if encryption were part of the protocol from the start. My goal was not to ship a finished product but to try ideas out in working code.

How it works

The project contains separate SDKs for the server and the client, meaning libraries that let developers use the protocol in their own applications. It has its own DNS resolver. Messages pass through an encryption layer that is part of the protocol. Connections between servers are managed through a connection pool, so a new connection is not needed for every message. Messages and related data are stored in BadgerDB.

Key features

  • There are separate SDKs for the server side and the client side.
  • It has its own DNS resolver.
  • Encryption is designed as a layer of the protocol itself.
  • A connection pool reuses open connections.
  • The storage layer runs on BadgerDB.

Technical stack

The project is written entirely in Go. For storage I use BadgerDB, an embedded key-value database written in Go. Being embedded means data is read and written directly from within the application without running a separate database server.

Use cases

  • Experimenting with how email transport protocols could be designed.
  • An example for anyone who wants to study building a network protocol, a connection pool and an encryption layer in Go.

Status

wcemail-protocol is an experimental prototype written to test ideas.

Category
Networking, servers & infrastructure
Year
2025

Technologies

  • Go
  • Email
  • Networking
  • Security

Back to all projects