zoukankan      html  css  js  c++  java
  • facebook开源项目集合

    Facebook的开源大手笔
     
    1. 开源Facebook平台代码
    Facebook在2008年选择将该平台上的重要部分的代码和应用工具开源。Facebook称,平台已经基本发展成熟,此举可以让开发者更全面地理解整个Facebook平台,更容易地为Facebook开发应用软件,并可以回报社区。
     
    该项目代号为“FBOpen”,其中包含了实现Facebook平台的一些基础设施、功能等,如API架构、FQL分析器、FBML分析器、FBJS,以及许多常用方法和标签的实现,代码基于PHP。这意味着其他开发者可以很方便地利用Facebook所采用的基础设施和技术。
     
    项目地址:https://github.com/facebook/platform/tree/master/fbopen
     
    开源的代码中,绝大部分使用CPAL(Common Public Attribution License)许可,而FBML分析器使用的是MPL(Mozilla Public License)许可证。
     
    2. 开源数据中心和网络系统
    为了在数据中心上与Google对抗,2011年Facebook宣布了开源计算项目(Open Compute Project,简称OCP)计划。该项目旨在创建“开源的”数据中心硬件,Facebook数据中心设计图、服务器配置、数据中心监控界面等悉数开源。Facebook此举的目的是为大数据中心建立更快、更便宜、用材更少的硬件。更重要的是,通过OCP免费提供的设计,任何企业都可以使用它,并对其进行调整。
     
    今年5月份,Facebook又宣布将其包括交换机等网络设备在内的网络系统开源。
     
    采用开源数据中心,使得Facebook可以与Google这一规模、经济实力都在它之上的对手在数据中心领域展开竞争。
     
    Facebook开源的基础设施
     
    除了大的系统平台、数据中心外,Facebook也开源了其所使用的基础设施和服务。介绍如下。
     
    1. Apache Cassandra
    这是一个分布式的存储系统,用来管理结构化数据,并可以扩展非常大型的、跨多个商品服务器(commodity servers)的大数据集,而不用担心出现单点故障。
     
    2. Apache Hive
    这是一个数据仓库基础设施,构建于Hadoop之上,其提供的工具可以轻松对大数据集进行数据汇总、即席查询(adhoc querying)和分析等。
     
    3. FlashCache
    这是一个针对Linux的通用的回写块缓存。它可以作为一个可加载的Linux内核模块,在文件系统之下使用。
     
    4. HipHop for PHP
    这是一个PHP虚拟机、运行时、JIT(Just In Time,实时生产系统)。它的前身是HPHPc(可将PHP代码编译为C++的项目)。HipHop虚拟机为PHP代码带来了一个大大的性能提升。
     
    5. folly
    folly(Facebook Open-source LibrarY)是一个提供类似std和boost功能的底层库,基于C++11特性。folly的开发者包括了Andrei Alexandrescu之类的C++编程领域的大师级人物。folly与std和boost的最大不同就是在大规模的场景中效率更高。
     
    6. Scribe
    这是一个可扩展的服务,用于从大量的服务器中实时聚合日志数据流。
     
    7. Thrift
    该项目提供了一个框架,用于可扩展的跨语言服务开发。Thrift结合了一个软件堆栈和一个代码生成引擎,来构建可高效工作的服务,可无缝跨C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk、OCaml、Delphi和其他语言。
     
    8. Tornado
    一个相对简单、无阻塞的Web服务器框架,使用Python编写。它被设计用来处理成千上万的并发连接,这使得它非常适合实时Web服务。
     
    9. React
    这是一个用于构建用户界面的JavaScript库,用来呈现instagram.com和Facebook的部分站点。
     
    10. FBMock
    FBMock是一个PHP mocking框架,简单且易于使用。
     
    Facebook开源的内部开发工具
     
    Facebook也选择将其内部开发人员所使用的工具开源。
     
    1. codemod
    可以协助开发者对大型代码库进行部分自动化重构工作,但仍然需要人的监督和不定期的干预。
     
    2. Facebook Animation
    这是一个JavaScript库,可以帮助开发者使用DOM和CSS来创建自定义动画。
     
    3. Online Schema Change for MySQL
    允许你在线更改集群中的大型数据库表,而不需将集群离线。
     
    4. Phabricator
    这是一个Web应用程序集合,可以帮助开发者轻松编写、审查和共享源代码。目前数百名Facebook工程师每天都在使用它。
     
    5. PHPEmbed
    该工具使得嵌入PHP对于开发者来说变得真正简单,这是一个更方便和更简化的、构建于PHP SAPI之上的API。
     
    6. phpsh
    该工具为PHP提供了一个交互式的shell,功能包括readline历史、标签自动完成以及快速访问文档等。有趣的是这个工具是用Python写的。
     
    7. Three20
    这是一个针对iPhone开发者的Objective-C库,提供了很多UI元素和数据辅助工具,不过该项目现在已经不维护了,不过你可以用于iOS5/6系统的应用开发中。
     
    8. XHP
    XHP是一个PHP扩展,可以增强PHP语言的语法,比如将XML文档片段变为有效的表达式。
     
    9. XHProf
    这是一个针对PHP的函数级的分层分析器,拥有一个简单的基于HTML的导航界面。
     
    开发平台
    Facebook的平台工程团队也发布和维护着一些开源的平台SDK,这些SDK可以帮助开发者很方便地将Facebook整合进第三方应用中。
     
    Facebook Android SDK:针对Android平台的SDK。
    Facebook iOS SDK:针对iOS平台的SDK。
    Facebook JavaScript SDK:针对JavaScript应用的SDK。
    Facebook PHP SDK:针对PHP应用的SDK。
     
    Facebook工程师贡献的开源项目
     
    Facebook的工程师也参与了很多开源项目的贡献。这些开源项目在Facebook中都有应用,并在生产环境中得到了优化。
     
    1. Apache Hadoop
    Apache Hadoop提供了可靠的、可扩展的、分布式的计算基础设施,在Facebook中用于数据分析。
     
    2. Apache HBase
    这是一个分布式的、面向列的数据存储,构建于Hadoop分布式文件系统(HDFS)之上。
     
    3. Cfengine
    这是一个基于规则的配置系统,用于服务器的自动配置和维护。Facebook使用Cfengine来维护主机配置,并在产品层面上自动化许多管理操作。
     
    4. jemalloc
    这是一个快速、一致、支持堆分析的内存分配器。Facebook的工程师为其添加了堆分析特性,并做出了很多优化。
     
    5. memcached
    这是一个分布式的内存对象缓存系统。Memcached最初不是由Facebook开发的,但Facebook已经成为了该技术的最大用户。
     
    6. MySQL
    MySQL是Facebook数据库基础设施的骨干。你可以在Launchpad中找到很多Facebook贡献的补丁,还可以通过MySQL@Facebook页面来了解Facebook如何使用它。
     
    7. PHP
    Facebook的大部分代码都是使用PHP开发的。它的语法很简单,让Facebook在产品上能够更快地迁移和迭代。
     
    8. Varnish
    在Facebook,该项目每天处理来自全世界用户的数十亿请求。当你加载朋友的图片和和头像时,Varnish就有参与。
  • 相关阅读:
    hdu 1290 献给杭电五十周年校庆的礼物 (DP)
    hdu 3123 GCC (数学)
    hdu 1207 汉诺塔II (DP)
    hdu 1267 下沙的沙子有几粒? (DP)
    hdu 1249 三角形 (DP)
    hdu 2132 An easy problem (递推)
    hdu 2139 Calculate the formula (递推)
    hdu 1284 钱币兑换问题 (DP)
    hdu 4151 The Special Number (DP)
    hdu 1143 Tri Tiling (DP)
  • 原文地址:https://www.cnblogs.com/haore147/p/7197749.html
Copyright © 2011-2022 走看看