Facebook contribution to open source can be largely categorized into
Mobile, Web, Back-end and Infrastructure. Top open source projects made
in these categories are:
Mobile:
Buck
Buck
is a high performance build system for Android that encourages creation
of small, reusable modules consisting of code and resources. Because
Android applications are predominantly written in Java, Buck also
functions as a Java build system.
Rebound
Rebound
is a Java library that models spring dynamics. Rebound spring models
can be used to create animations that feel natural by introducing real
world physics to your application. Rebound uses the same spring
constants as
Origami making it easy to convert Origami interaction mockups directly into your Android application.
Origami
Origami
is a tool for designing modern user interfaces. Quickly put together a
prototype, run it on your iPhone or iPad, iterate on it, and export code
snippets your engineers can use.
Stetho
Stetho
is an all new debugging platform for Android. It enables the powerful
Chrome Developer Tools which is implemented using a client/server
protocol which the Stetho software provides for your application. Once
your application is integrated, simply navigate to
chrome://inspect
and click “Inspect” to get started!
Infer
Facebook
Infer is
a static analysis tool to detect bugs in Android and iOS apps before
they ship. If you give Infer some Objective-C, Java, or C code, it
produces a list of potential bugs. Anyone can use Infer to intercept
critical bugs before they have shipped to people’s phones, and help
prevent crashes or poor performance. Infer targets critical bugs such as
null pointer exceptions, resource leaks and memory leaks.
Web:
React Js
React Js is
a declarative, efficient, and flexible JavaScript library for building
user interfaces. Lots of people use React as the V in MVC. Since React
makes no assumptions about the rest of your technology stack, it’s easy
to try it out on a small feature in an existing project.
HHVM
HHVM (Hip
Hop VM) is an open-source virtual machine designed for executing
programs written in Hack and PHP. HHVM uses a just-in-time (JIT)
compilation approach to achieve superior performance while maintaining
the development flexibility that PHP provides. It has realized more than
a 5x increase in throughput for Facebook compared with Zend PHP
5.2. HipHop is most commonly run as a standalone server, replacing both
Apache and modphp, but it can also run standalone scripts from the
command line.
Flux
Flux
is the application architecture that Facebook uses for building
client-side web applications. It complements React’s composable view
components by utilizing a unidirectional data flow. It’s more of a
pattern rather than a formal framework, and you can start using Flux
immediately without a lot of new code.
Flow
Flow
adds static typing to JavaScript to improve developer productivity and
code quality. The goal of Flow is to find errors in JavaScript code with
little programmer effort. Flow relies heavily on
type inference
to find type errors even when the program has not been annotated – it
precisely tracks the types of variables as they flow through the
program.
fb-flo
fb-flo
is a Chrome extension that lets you modify running apps without
reloading. It’s easy to integrate with your build system, dev
environment, and can be used with your favorite editor.
Jest
Jest
is unit testing framework for JavaScript. It is built on top of the
Jasmine test framework, using familiar expect(value).toBe(other)
assertions. It automatically mocks CommonJS modules returned by
require(), making most existing code testable.
Nuclide
Nuclide is a suite of packages for
Atom
to provide IDE-like functionality for a variety of programming
languages and technologies. It is designed to provide a unified
developer experience for engineers throughout the company — whether they
work on native iOS apps, on React and React Native code, or on Hack to
run on our HHVM web servers.
Back-end:
Presto
Presto
is an open source distributed SQL query engine for running interactive
analytic queries against data sources of all sizes ranging from
gigabytes to petabytes. Facebook uses Presto for interactive queries
against several internal data stores, including their 300PB data
warehouse. Over 1,000 Facebook employees use Presto daily to run more
than 30,000 queries that in total scan over a petabyte each per day.
Osquery
Osquery gives
you a SQL interface to try out new queries and explore your operating
system. With the power of a complete SQL language and dozens of useful
tables built-in, osquery is an invaluable tool when performing incident
response, diagnosing system operations problem, or troubleshooting a
performance issue. Deploy a security tool that also enables developers
and administrators.
RocksDB
RocksDB
builds on LevelDB to be scalable to run on servers with many CPU cores,
to efficiently use fast storage, to support IO-bound, in-memory and
write-once workloads, and to be flexible to allow for innovation.
Not only softwares, but Facebook has also built various custom hardware competent to meet its ever increasing scale under
Open Compute Project.
Unlike Google and Microsoft, Facebook not only contributes its
research work but also the end implementation to open source community.
Let us know in comments your views towards Facebook’s open source
contribution.
Source:
Top 15 Facebook Open Source Projects You Must Know