Typical與代數(shù)數(shù)據(jù)類(lèi)型的數(shù)據(jù)交換
Typical 是一個(gè)數(shù)據(jù)序列化框架。你在一個(gè)叫做 schema 的文件中定義數(shù)據(jù)類(lèi)型,然后 Typical 為各種語(yǔ)言生成高效的序列化和反序列化代碼。生成的代碼可用于服務(wù)之間的消息編排,將結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在磁盤(pán)上,等等。緊湊的二進(jìn)制編碼支持你的模式的不同版本之間的前向和后向兼容,以適應(yīng)不斷變化的需求。
Typical可以與Protocol Buffers和Apache Thrift相比。主要的區(qū)別是Typical有一個(gè)基于代數(shù)數(shù)據(jù)類(lèi)型的更現(xiàn)代的類(lèi)型系統(tǒng),強(qiáng)調(diào)一種更安全的編程風(fēng)格,具有不可置空的類(lèi)型和詳盡的模式匹配。如果你有接受這種風(fēng)格的語(yǔ)言的經(jīng)驗(yàn),如Rust和Haskell,你會(huì)感到很熟悉。
對(duì)于如何在不破壞兼容性的情況下安全地添加或刪除記錄類(lèi)型中的字段這一經(jīng)典問(wèn)題,Typical提供了一種新的解決方案("asymmetric"fields);此概念也解決了 dual problem,即在添加或刪除和類(lèi)型中的案例時(shí)如何保持兼容性。
Typical 提供了兩個(gè)重要的功能:
- 不折不扣的類(lèi)型安全
- 模式版本之間的二進(jìn)制兼容性
Typical的設(shè)計(jì)參考了Google的Protocol Buffers和Airbnb的Apache Thrift的使用經(jīng)驗(yàn)。
評(píng)論
圖片
表情
