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最新版本
- 解压tar -xzf noms-*.tar.gz
- 运行
./noms ds http://demo.noms.io/cli-tour
./noms log http://demo.noms.io/cli-tour::sf-film-locations
Explore
讨论
niftich说:像这样的开源技术非常好。这可以用来做分布式的文件编辑应用。或者其它想要做分布式多个示例并支持以后合并的应用。