İçeriğe geç
Muslu Yüksektepe

wcemail-protocol

Go ile yazılmış deneysel bir e-posta taşıma protokolü: kendi sunucu ve istemci kütüphanesi, şifreleme katmanı ve depolaması var.

wcemail-protocol, e-postanın sunucular arasında taşınması için Go ile geliştirdiğim yeni bir protokolün prototipi. Bugün e-posta büyük ölçüde SMTP üzerinden taşınıyor; bu projede ise farklı bir taşıma biçimini kendi kodumla denemek istedim. Proje deneysel bir çalışma ve üretimde kullanılmak üzere hazırlanmadı.

Amaç

SMTP onlarca yıllık bir protokol ve şifreleme gibi konular ona sonradan eklenen katmanlarla çözülüyor. wcemail-protocol ile şifrelemenin baştan protokolün parçası olarak tasarlandığı bir yapının nasıl görüneceğini sınamak istedim. Amacım bitmiş bir ürün çıkarmak değil, fikirleri çalışan kod üzerinde denemekti.

Nasıl çalışır

Proje, sunucu ve istemci için ayrı birer SDK, yani geliştiricilerin protokolü kendi uygulamalarında kullanabilmesi için hazırlanmış kütüphaneler içeriyor. Projenin kendi DNS çözümleyicisi var. İletiler, protokolün içinde yer alan bir şifreleme katmanından geçiyor. Sunucular arasındaki bağlantılar bir bağlantı havuzu üzerinden yönetiliyor; böylece her ileti için yeni bir bağlantı kurmak gerekmiyor. İletiler ve ilgili veriler BadgerDB üzerinde saklanıyor.

Öne çıkan özellikler

  • Sunucu ve istemci tarafı için ayrı SDK'lar bulunuyor.
  • Kendi DNS çözümleyicisi var.
  • Şifreleme, protokolün kendi katmanı olarak tasarlandı.
  • Bağlantı havuzu sayesinde açık bağlantılar yeniden kullanılıyor.
  • Depolama katmanı BadgerDB üzerinde çalışıyor.

Teknik altyapı

Proje tamamen Go ile yazıldı. Depolama için Go ile yazılmış, gömülü çalışan bir anahtar-değer veritabanı olan BadgerDB'yi kullanırım. Gömülü olması, ayrı bir veritabanı sunucusu kurmadan verinin doğrudan uygulamanın içinden okunup yazılmasını sağlıyor.

Kullanım alanları

  • E-posta taşıma protokollerinin nasıl tasarlanabileceği üzerine deney yapmak için kullanılabilir.
  • Go ile ağ protokolü, bağlantı havuzu ve şifreleme katmanı geliştirmeyi incelemek isteyenler için bir örnek sunar.

Durum

wcemail-protocol deneysel bir prototip ve fikirleri sınamak için yazıldı.

Kategori
Ağ, sunucu ve altyapı
Yıl
2025

Teknolojiler

  • Go
  • Email
  • Networking
  • Security

Tüm projelere dön