英文原文:projects that power github
Github 是一家一直致力于开源事业的企业,github.com 网站也是全球最流行的开源项目托管平台,上面托管着成千上万个开源项目。除此以外,Github 也开源了不少软件项目,感兴趣的同学可以前往其 开源页面看看。
在致力于开源事业的同时,Github 也使用一些非常优秀的开源项目的来打造自己的平台与服务,本文总结了 Github 所用到各种开源项目,它们分别扮演着不同的角色。
1. Linguist
顾名思义,Linguist 直译是语言学家的意思,采用 Ruby 开发。使用它可以自动分辨项目所使用的开发语言。Github 使用该开源项目主要是用来探测 blob 语言,突出显示代码、忽略二进制文件、防止文件生成存在差异以及生成语言分解图等。
托管地址: https://github.com/github/linguist
2. pjax
pjax 是对 ajax + pushState 的封装,让你可以很方便的使用 pushState 技术。同时支持缓存和本地存储,再次访问的时候可以直接读取本地数据。展现方式支持动画技术,可以使用系统自带的动画方式,也可以自定义动画展现方式。
官网: http://pjax.heroku.com/
托管地址: https://github.com/defunkt/jquery-pjax
3. Elasticsearch
Elasticsearch 是一个实时的、分布式的 RESTful 搜索引擎,基于 Apache Lucene 开发。具备高可靠性,支持非常多的企业级搜索用例。它对外提供一系列基于 Java 和 HTTP 的 API,用于索引、检索、修改大多数配置。
官网: http://www.elasticsearch.org/
托管地址: https://github.com/elasticsearch/elasticsearch
4. Ruby on Rails
Rails 是一个使用 Ruby 语言写的开源 Web 应用框架,它是严格按照 MVC 结构开发的。它努力使自身保持简单,来使实际的应用开发代码更少,使用最少的配置。
官网: http://rubyonrails.org/
托管地址: https://github.com/rails/rails
5. redis
Redis 是一个开源、支持网络、基于内存、键值对存储的数据库。基于C语言开发,与其他很多键值对数据库的不同之处在于, Redis 不仅支持简单的字符串键值对,它还提供了一系列数据结构类型值,比如列表、哈希、集合和有序集, 并在这些数据结构类型上定义了一套强大的 API。
官网: http://redis.io/
托管地址: https://github.com/antirez/redis
6. sprockets
sprockets 是一个 Ruby 库,用于编译和服务 Web 资产。它可以用来检查 JavaScript 和 CSS 等文件之间的依赖关系,它还拥有一个强大的预处理器管道,允许开发者在 CoffeeScript、Sass、SCSS 和 LESS 等语言里编写资产。
托管地址: https://github.com/sstephenson/sprockets
7. libgit2
libgit2 是一个可移植、纯C语言实现的 Git 核心开发包,作为一款带有稳固 API 的可重入链接库,libgit2 允许你使用任何语言来编写 Git 应用。此外,libgit2 可以应用在各个平台上,包括 Unix、Linux、MacOS X、Windows 等。
官网: http://libgit2.github.com/
托管地址: https://github.com/libgit2/libgit2
8. Rugged
Rugged 是一个C语言实现的库,主要用来支持在 Ruby 中访问 libgit2 开发包。
托管地址: https://github.com/libgit2/rugged
9. bcrypt-ruby
bcrypt-ruby 是一个用于 OpenBSD bcrypt ()密码哈希算法的 Ruby 绑定,开发者可以使用它把用户密码变成哈希数,安全地存储用户密码,预防黑客攻击。
官网: http://bcrypt-ruby.rubyforge.org
托管地址: https://github.com/codahale/bcrypt-ruby
10. html-pipeline
Github HTML 处理过滤器和工具,是由几个 HTML 工具打包而成的。该模块还包含一个基于内容过滤来定义 DOM 的小型框架。
托管地址: https://github.com/jch/html-pipeline
11. gemoji
gemoji 里面主要包含 emoji 表情的图片和名称。
托管地址: https://github.com/github/gemoji
12. Jekyll
Jekyll 是一个静态站点生成器,它会根据网页源码生成静态文件。它提供了模板、变量、插件等功能,所以实际上可以用来编写整个网站。
官网: http://jekyllrb.com/
托管地址: https://github.com/jekyll/jekyll
13. Gollum
Gollum 是一个简单的基于 Git 的 wiki 系统,Github 的 wiki 就是由它实现的。支持 markdown 编写。它同时带有一个本地的前端,你可以在浏览器里编写保存页面,系统会在后端自动提交。因为它是一个 Git repo,所以你也可以把它 push 到 GitHub。
托管地址: https://github.com/gollum/gollum
14. Octokit
Octokit 是 Github API 客户端库集合,允许开发者使用自己擅长的编程语言来访问 Github API。Octokit 项目包含 Ruby、Objective-C 和 .NET、GO 客户端。
托管地址: https://github.com/octokit
15. Hubot
Hubot 是 Github 开源的运维机器人,它在 Github 员工的日常生活中扮演着非常重要的角色。它非常灵活,任何人都可以编写自己的脚本来扩展基本功能。脚本使用的语言是 CoffeeScript,而 Hubot 运行在 Node.js 上。
官网: http://hubot.github.com/
托管地址: https://github.com/github/hubot
16. D3.js
D3.js 是一个基于 JavaScript 数据展示库,用于操作基于数据的 HTML 文档。它能够帮助我们以 HTML 或 SVG 的形式快速可视化展示,进行交互处理,合并平稳过渡,在 Web 页面演示动画。它既可以作为一个可视化框架(如 Protovis),也可以作为构建页面的框架(如 jQuery)。
官网: http://d3js.org/
托管地址: https://github.com/mbostock/d3
17. Plax
Plax 是一个 jQuery 插件,可以通过鼠标的悬浮或移动来触发视差滚动效果。开发者可以使用它制作 404、500 以及 About 页面。
官网: http://cameronmcefee.com/plax/
托管地址: https://github.com/cameronmcefee/plax
18. Ace
Ace 是一个开源的、独立的、基于浏览器的代码编辑器,可以嵌入到任何 Web 页面或 JavaScript 应用程序中。Ace 支持超过 40 种语言语法高亮,并能够处理代码多达 400 万行的大型文档。Ace 开发团队称,Ace 在性能和功能上可以媲美本地代码编辑器(如 Sublime Text、TextMate 和 Vim 等)。
官网: http://ace.c9.io/
托管地址: https://github.com/ajaxorg/ace
19. Zepto.js
Zepto 是为现代浏览器打造的轻量级 JavaScript 库,它与 jQuery 有着类似的 API。如果你会 jQuery,那么也就会使用 Zepto 了。
官网: http://zeptojs.com/
托管地址: https://github.com/madrobby/zepto
20. ZeroClipboard
ZeroClipboard 使用一个不可视化的 Adobe Flash 动画和一个 JavaScript 接口即可轻易把文本的拷贝到粘贴板的库。
官网: http://zeroclipboard.org/
托管地址: https://github.com/zeroclipboard/zeroclipboard
21. Charlock Holmes
Charlock Holmes 是一个字符编码检测库,主要用于检测字符和代码转换,以确保代码字符为 UTF-8。
托管地址: https://github.com/brianmario/charlock_holmes
22. Puppet
Puppet 是一个自动管理引擎,可以适用于 Linux、Unix 以及 Windows 平台。所谓配置管理系统,就是管理机器里面诸如文件、用户、进程、软件包这些资源。无论是管理 1 台,还是上万台机器 Puppet 都能轻松搞定。
官网: http://www.puppetlabs.com/puppet/introduction/
托管地址: https://github.com/puppetlabs/puppet
23. Moment.js
Moment.js 是一款非常轻量且健壮的 JavaScript 日期处理类库,提供了日期格式转换、日期验证等功能。Github 使用它主要用来显示前端时钟。
官网: http://momentjs.com/
托管地址: https://github.com/moment/moment
24. Bower
Bower 是由 Twitter 开源的一款包管理器,主要用于 Web 前端开发。它提供了一套通用、客观的解决方案。它通过一个 API 暴露包之间的依赖模型,这样更利于使用更合适的构建工具。Bower 没有系统级的依赖,在不同 App 之间也不互相依赖,依赖树是扁平的。
官网: http://bower.io/
托管地址: https://github.com/bower/bower
25. Resque
Resque 是一个基于 Redis 的后端 Ruby 库,由 Github 开源。其主要用来创建后台任务、并且把这些任务安置在多个队列上,等待处理。它还自带前台管理功能,方便查看执行情况。
托管地址: https://github.com/github/resque
可以说,开源成就了 Github,Github 也推动了全球开源事业的发展。越来越多的互联网公司重视开源事业的发展,并且积极投身到开源事业当中。