Ağ uygulamaları oluşturmaya yönelik çerçevenin yayımlanması ErgoFramework 2.2

ErgoFramework 2.2'nin bir sonraki sürümü, Erlang ağ yığınının tamamının ve OTP kütüphanesinin Go dilinde uygulanmasıyla gerçekleşti. Çerçeve, geliştiriciye, hazır genel amaçlı tasarım modellerini gen.Application, gen.Supervisor ve gen.Server'ın yanı sıra özel olanları - gen kullanarak Go dilinde dağıtılmış çözümler oluşturmak için Erlang dünyasından esnek araçlar sağlar. Stage (dağıtılmış pub/sub), gen. Saga (dağıtılmış işlemler, SAGA tasarım modelinin bir uygulaması) ve gen.Raft (Raft protokolünün bir uygulaması).

Ek olarak çerçeve, Erlang/OTP ve Elixir'de bulunmayan uçtan uca şifrelemeli proxy işlevselliği sağlar. Go dili, Erlang sürecinin doğrudan bir benzerine sahip olmadığından, çerçeve, istisna durumlarını ele almak için bir "kurtarma" sarmalayıcısı ile gen.Server'ın temeli olarak goroutinleri kullanır. Proje kodu MIT lisansı altında dağıtılmaktadır.

ErgoFramework'teki ağ yığını, Erlang protokolünün DIST spesifikasyonunu tam olarak uygular. Bu, ErgoFramework temelinde yazılan uygulamaların, Erlang veya Elixir programlama dillerinde yazılan tüm uygulamalarla yerel olarak çalıştığı anlamına gelir (bir Erlang düğümüyle etkileşim örneği). Gen.Stage tasarım modelinin Elixir GenStage spesifikasyonuna göre uygulandığını ve onunla tamamen uyumlu olduğunu da belirtmekte fayda var (uygulama örneği).

Yeni sürümde:

  • Yeni şablonlar eklendi
    • gen.Web bir Web API Ağ Geçidi (Ön Uç İçin Arka Uç olarak da bilinir) tasarım modelidir. Örnek.
    • gen.TCP, kod yazarken minimum çabayla TCP bağlantı alıcılarından oluşan bir havuz oluşturmanıza olanak tanıyan bir şablondur. Örnek.
    • gen.UDP - gen.TCP şablonuna benzer, yalnızca UDP protokolü için. Örnek.
  • Yerel süreçler arasında olay alışverişi (pub/sub) için mekanizmalar oluşturmanıza olanak tanıyan, bir düğüm içinde basit bir olay veriyolunun uygulanmasıyla yeni bir Olaylar işlevi önerildi. Örnek.
  • İletilerin yerel bir Golang veri türüne otomatik olarak serileştirilmesine/seri durumdan çıkarılmasına olanak tanıyan tür kaydı desteği eklendi. Bu, artık aldığınız her mesaj için etf.TermIntoStruct kullanmanıza gerek olmadığı anlamına gelir. Kayıtlı türler otomatik olarak belirtilen türe dönüştürülecek ve bu da dağıtılmış düğümler arasındaki mesaj alışverişinin performansını önemli ölçüde hızlandıracak.

Kaynak: opennet.ru

Yorum ekle