Noms是一个类似于Git的去中心化的数据库。支持Fork,混合版本,同步等。目前已经在GitHub上开源,并且有两个编程语言的实现。一个是Go,一个是JavaScript。在Github上,还提供了很多实用工具以及应用范例。 

关于Noms 
Nom相比于其它数据库,主要有以下不同: 
  • Content-addressed 如果你想要往Noms存放数据,不必担心要插入的数据是否存在。重复的数据在Noms中会被自动忽略。在Noms里,没有更新,只有插入;
  • Append-only 如果你想向Noms提交什么数据,不必担心覆盖的问题。你添加的记录都有历史版本。默认情况下,Noms永远不会删除数据,你可以查看数据库的整个历史版本,比较两次提交的不同,或者回退到之前的任何一个版本;
  • Typed 任何数据值,数据表和数据库的版本,都有一个类型(type),当你添加数据的时候,会自动生成。如果你对自己足够自信,也可以自己实现Noms对类型的处理;
  • Decentralized 如果我给你一份数据库,你和我都可以同时修改数据,互不影响。一段时间之后可以合并在一起。

Setup 
Noms支持MacOSX和Linux。你可以自己从源代码变异Windows版本,一般情况下都能正常工作,但是并不受官方支持。 


./noms ds http://demo.noms.io/cli-tour 

./noms log http://demo.noms.io/cli-tour::sf-film-locations 

Explore 

 

讨论 
niftich说:像这样的开源技术非常好。这可以用来做分布式的文件编辑应用。或者其它想要做分布式多个示例并支持以后合并的应用。