開源軟件中有大量專家構建的代碼,大大節省了開發人員的時間和成本,熱衷於開源的大廠們老是可以帶給咱們新的驚喜。2016年9月GitHub報告顯示,GitHub已經有超過 520 萬的用戶和超 30 萬的組織。這十二個月以來,有超過 81 萬的人發起了人生第一個 PR,更有 280 萬人創造了他本身的第一個倉庫,而中國,成爲新註冊增加最多的國家。php
Facebook開源項目負責人曾說過:
一是開源可以幫助他人更快地開發軟件,促進世界創新,主要是社會價值層面的考慮。二是開源可以倒逼Facebook的工程師寫出更好的代碼。三是開源可以更有效利用社區的力量,幫助Facebook一塊兒解決難題。開源,讓世界更美好,不是嗎?html
國內外不少國家都爲開源作出了很大的貢獻,小編也秉着「開源」的心態,整理了13個公司的開源軟件,這13個公司分別是微軟、Google、亞馬遜、IBM、VMware、Facebook、Twitter、ebay、騰訊、阿里、百度、美團點評、華爲等。分兩篇文章和你們共享,快點Mark起來並轉發給須要的人吧。前端
微軟開源軟件 html5
一、Visual Studio Code:跨平臺源代碼編輯器
Visual Studio Code是微軟於2015年正式發佈的項目,能夠運行在Mac OS X、Windows和Linux之上,面向Web和雲應用的一款跨平臺源代碼編輯器。
雖然它的名字與Visual Studio相近,但前者是代碼編輯器,後者是集成開發環境(IDE)而且目前只運行在Windows上。
GitHub主頁:
https://github.com/Microsoft/...java
二、CNTK: 深度學習開源工具包
CNTK全稱爲The Microsoft Cognitive Toolkit, 將神經網絡描述爲計算機可處理的有向圖,有向圖的葉節點表示輸入值或網絡參數,其餘節點表示輸入對應的矩陣運算。CNTK便於實現而且也結合了不少流行計算模型如前饋DNN,卷積網(CNN)和復現網絡(RNN / LSTM)。它能夠跨多個GPU和服務器實現隨機梯度降低(SGD,偏差反向傳播)學習與自動微分和並行化。
能夠在Python或者C++語言中如同庫版應用,也可使用其自有的描述語言BrainScript單機化使用。CNTK可適用於64位的Linux和Window,於2015年4月開源。
GitHub地址:
https://github.com/Microsoft/...node
三、TypeScript:開源編程語言,JavaScript的超集
TypeScript是JavaScript強類型的超集,能夠編譯成純JavaScript。由微軟開發的自由和開源的編程語言,能夠運行在各種瀏覽器和操做系統之上。
GitHub主頁:
https://github.com/Microsoft/...react
四、Azure相關:文檔、SDK和代碼示例
微軟支持開發者們將各類開源軟件工具和技術帶入Azure。Azure 應用市場支持不少Linux 分發,包括 Ubuntu、Debian 和 SUSE;也支持藉助支持 Node.js、PHP、Python 和 Java 的 Azure 應用服務,生成 Web 和移動應用。在GitHub上Azure相關的存儲庫有1700+個。
地址:https://azure.microsoft.com/z...android
五、BashOnWindows:解決Ubuntu Bash在Windows的使用問題
微軟在Build 2016大會上宣佈了一條振奮人心的消息,你們驚呼Ubuntu on Windows。Bash on Windows 爲開發者們提供了Bash shell、Linux相似環境,在不須要Linux虛擬機的狀況下,大部分的Linux命令行工具基本上能夠不經修改地運行在Windows上。
GitHub地址:
https://github.com/Microsoft/...git
六、Donnet:採用系統虛擬機運行的編程平臺
.NET是微軟研發的XML Web services平臺,此框架支持多種語言(如C#、F#、VB.Net、C++、Python等)的開發。.NET框架歷經亟待,最終於2014年開源。C#一般被認爲是微軟專屬,是.NET框架上最經常使用的編程語言之一, 其著名競爭對手是Java。
GitHub主頁:
https://github.com/Microsoft/...程序員
七、PowerShell :爲任何系統提供Windows的命令行工具
一個跨平臺(Windows、Linux和macOS)自動化和配置工具/框架,可與現有工具完美配合,並優化用於處理結構化數據(例如JSON,CSV,XML等)、REST API 和對象模型。 它包括命令行shell,相關的腳本語言和用於處理cmdlet的框架。
GitHub地址:
https://github.com/PowerShell...
八、MSOpenTech/redis: 在Windows使用Redis
官方只支持64位,可自行構建32位版。該開源項目,在2.8版本中,替代UNIX fork()API中的內存映射文件模擬寫時複製行爲。 版本3.0相似,爲了便於系統文件分頁,刪除了內存映射文件,在管理堆碎片方面進行了改進。
Redis對文件描述符的值作了一些假設,微軟構建了一個虛擬文件描述符映射層。
GitHub地址:
https://github.com/MSOpenTech...
九、WinObjc:Windows下的Objective-C
爲Visual Studio提供了一個Objective-C開發環境並支持iOS API。經過從新使用Objective-C代碼和iOS API,配以Windows自有Cortana(中文名:微軟小娜,微軟發佈的全球第一款我的智能助理)和通知等功能,用戶能夠建立通用Windows平臺(UWP)應用程序並運行在Windows設備上。
GitHub地址:
https://github.com/Microsoft/...
GitHub地址:
https://github.com/Microsoft/...
十、ASP.NET之MVC核:模型(model)-視圖(view)-控制器(controller)框架
旨在TDD友好,用於建立符合最新Web標準的複雜應用程序、構建動態網站,能夠在IIS中託管或自我託管。
GitHub地址:
https://github.com/aspnet/Mvc
十一、.Net 開源核心類庫:運行環境和編譯器
.Net的核心類庫,運行環境和編譯器都已經開源,現在整套.Net環境均可以在Linux,Mac下運行。
Github主倉庫:
https://github.com/Microsoft/...
十二、ChakraCore :開源JavaScript解釋器
隨着Windows10一塊兒面世的Edge瀏覽器是微軟的洗心革面之做,運行效率獲得了極大的提高,多項測試中執行效率甚至超過了Chrome。 ChakaraCore,做爲Edge瀏覽器的JavaScript解釋器,是其中的祕密武器。在ChkraCore開源後,本來就火熱的JavaScript後端開發領域或許會迎來新的推進力。
Github主倉庫:
https://github.com/Microsoft/...
1三、PerfView:CPU 和內存性能分析工具
PerfView 是微軟開源的 CPU 和內存性能分析工具。它能以多種方式收集和觀察 ETL 文件,擁有強大的羣組運算能力。
在 Visual Studio 中打開 src/PerfView/Perfview.sln 文件,選擇 Build -> Build Solution ,便可建立。生成的 PerfView.exe 文件是以 src/PerfView/bin/BuildType/PerfView.exe 命名,配置好後便可使用。
須要工具:Visual Studio 2013 或更高版本,建議 Visual Studio 2015 。
詳情:https://www.oschina.net/p/per...
1四、vcpkg:VC++ 打包工具
vcpkg 是微軟 C++ 團隊開發的在 Windows 上運行的 C/C++ 項目包管理工具,能夠在 Windows 平臺上獲取 C 和 C++ 庫.
vcpkg 自身也是使用 C++ 開發的,整合了 git,構建系統整合的 CMake,而且 vcpkg 可以幫助用戶在 Visual Studio 中更好的使用這些安裝好的庫.
詳情:https://www.oschina.net/p/vcpkg
1五、Checked C:C/C++ 更加安全的庫
Checked C容許程序員在C/C++中編寫「確保邊界檢查」的代碼。該規範肯定了變量操做行爲,包括指針類型的間接尋址、數組引用、賦值、指針加法、比較、取址(&)、含邊界檢查數組類型和指針類型的轉換等。編譯器能夠經過增長參數在指針非正常使用時發出警告或者錯誤。
Checked C 包含規範、一個clang的實現和一個LLVM的實現。
詳情:https://www.oschina.net/p/che...
1六、monaco-editor :基於瀏覽器的代碼編輯器
Monaco Editor 是微軟開源的基於 VS Code 的代碼編輯器,運行在瀏覽器環境中。編輯器提供代碼提示,智能建議等功能。供開發人員遠程更方便的編寫代碼。
詳情:https://www.oschina.net/p/mon...
亞馬遜開源軟件
一、DDSTNE:開源深度學習工具
DDSTNE是亞馬遜推薦系統中使用的深度學習工具,爲多GPU節點和鬆散數據結構進行了專門優化.
Github主倉庫:
https://github.com/amznlabs/a...
二、opsworks-cookbooks:開源運維輔助工具
亞馬遜爲開源運維工具Chef編寫的配置和運維策略集。若是你想在AWS上嘗試Chef,這是亞馬遜爲你進行的專門定製。在其餘平臺上嘗試Chef,亞馬遜的opsworks-chookbooks也有必定的參考意義.
Github主倉庫:
https://github.com/aws/opswor...
三、Amazon Ion:開源數據存儲格式
亞馬遜開源的數據存儲格式,同時支持便於查看的文本格式和便於高效存儲和傳輸的二進制格式。提供了C,Java,Python語言的支持。
Github主倉庫:
https://github.com/amznlabs/i...
谷歌開源軟件
一、Android:開源移動操做系統
世界最流行的操做系統,市場佔有量甚至超過了Windows。 成功很大程度來源Android操做系統相比競爭對手採用了開源的策略,使得手機制造商可以大量生產基於Android操做系統的手機。
地址:
https://source.android.com
二、Chromium:開源瀏覽器
Chromium是Chrome的開源版本,幾乎全部的瀏覽器新特性都會首先出如今Chromium上再逐步往Chrome「下放」。因爲Chromium的開源屬性,幾乎全部的國產瀏覽器裏都有着Chromium的開源代碼。
地址:
https://www.chromium.org/
三、TensorFlow:AI和機器學習
TensorFlow是Google開源的用於機器學習庫。用於構建和訓練神經網絡,編寫AI程序。去年橫掃人類圍棋高手的Google AI程序,就是基於TensorFlow編寫的。TensorFlow能夠運行在CPU,也能夠運行在GPU之上。
Github主倉庫:
https://github.com/tensorflow...
四、Go:開源編程語言
發佈於2007年的編程語言。Go嘗試成爲一種在保留住靈活性和性能的同時最大程度去處C系編程語言複雜度的新系統語言。雖然社區裏一直有對Go特性不足的抱怨,但創始人堅定認爲這對保持這一語言的成功是必不可少的。 Go語言目前主要運用於服務器編程領域。
Github主倉庫:
https://github.com/golang/go
五、AngularJS:前端框架
AngularJS是一個用來編寫單頁Web應用的前端框架。雖然AngularJS的目標是簡化Web應用的開發過程,但其自身引入的衆多概念帶來的複雜性也受很多詬病。
Github主倉庫:
https://github.com/angular/an...
六、Kubernetes:容器集羣管理系統
Kubernetes 是來自 Google 雲平臺的開源容器集羣管理系統。基於 Docker 構建一個容器的調度服務。該系統能夠自動在一個容器集羣中選擇一個工做容器供使用。其核心概念是 Container Pod。
Github地址:
https://github.com/kubernetes...
七、Protocol Buffers:分佈式計算
用於不一樣進程和服務器之間進行數據通訊的數據序列化工具。服務器上不一樣的程序能經過Protocol Buffers來進行通訊和分工協做。相比XML和JSON,Protocal Buffers有着更高的性能,但你也再也不能僅憑文本編輯器就查看到本身的數據。
Github主倉庫:
https://github.com/google/pro...
八、Dart:開源編程語言
另外一個由Google支持的開源編程語言。Dart着力於Web應用,移動App和物聯網設備。和Go不一樣,Dart不是一種編譯型語言。它和Python或Java同樣運行在本身的虛擬機之上,但也能轉換成JavaScript放入瀏覽器中運行。
Github主倉庫:
https://github.com/dart-lang/sdk
九、Fuchsia OS:操做系統
神祕的全新開源操做系統,和以前的Android不一樣,Fuchsia OS沒有基於Linux內核,而是另起爐竈打造裏一套更能被Google控制的操做系統內核. Google是準備打造IOT(物聯網)領域的新Android,仍是僅僅是個試驗項目,如今還不得而知。
地址: https://fuchsia.googlesource.com
十、GWT:Google web工具包
Google 網頁工具包——GWT 提供了一組基於Java語言的開發包,
開發出來的Java應用將由GWT開發包提供的編譯工具編譯後聲生成對應的、應用了Ajax技術的Web應用,Java應用中出現的、和服務器之間的交互動做被自動生成的異步調用代碼所代替。
詳情:http://www.oschina.net/p/goog...
十一、Google Mock:C++模擬測試框架
Google Mock在google內部超過100個項目中使用過,這個框架可以在Linux,Windows 和Mac OS X上使用。
下載地址:
http://download.csdn.net/down...
十二、GRPC:RPC 框架
GRPC 是一個高性能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。目前提供 C、Java 和 Go 語言版本,分別是:grpc,grpc-java,grpc-go。其中 C 版本支持 C,C++,Node.js,Python,Ruby,Objective-C,PHP 和 C# 支持。
GRPC 基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 鏈接上的多複用請求等特。這些特性使得其在移動設備上表現更好,更省電和節省空間佔用。
開源中國組織翻譯的《gRPC 官方文檔中文版》:
http://doc.oschina.net/grpc
1三、Gumbo:純C語言實現的HTML5解析庫
Gumbo 是 Google 的一款用C語言實現的HTML5解析庫,無需任何外部依賴。目標及特徵:
遵循 HTML5 規範
功能強大,可處理一些不規範的 HTML 標籤
簡單的 API
支持源位置和指針回到原始文本
輕巧、沒有外部依賴
經過 html5lib-0.95 兼容測試
已在超過25億個來自谷歌索引的頁面中進行過測試
Github地址:
https://github.com/google/gum...
1四、Google API for Java
Google API Client Library for Java 是由Google開發的一個Java客戶端類庫,用於訪問其提供的各類基於HTTP的服務。具備靈活、高效、強大等特色。這是訪問基於REST或JSON-RPC的Google API推薦類庫。
Github地址:
https://github.com/google/goo...
1五、MDL:前端開發工具組
MDL (Material Design Lite) 是 Google 推出的網站前端開發工具組。Material Design Lite (MDL)可讓你添加一個 Material Design 的外觀和感受到你的靜態內容網站,不依賴於任何的 JavaScript 框架和庫。MDL 能夠優化跨設備的使用體驗,能夠在舊版的瀏覽器進行平滑的切換,提供很是快速的訪問體驗。
瀏覽器支持:
IE9-11,Chrome,Opera,Firefox,Safari,Chrome(Android),Mobile Safari。
詳情:https://www.oschina.net/p/mdl
1六、Google JS Test
Google JS Test是一個運行於V8 JavaScript引擎下的Javascript單元測試框架,其在Google內部負責對Chrome的快速JS執行速度進行測試。
詳情:https://www.oschina.net/p/goo...
1七、Bazel:代碼構建工具
Bazel 是 Google 的一款可再生的代碼構建工具。它主要是用於構建 Google 的軟件,處理出如今谷歌的開發環境的構建問題,好比說:大規模數據構建問題,共享代碼庫問題,從源代碼構建的軟件的相關問題。
Bazel 支持多種語言而且跨平臺,還支持自動化測試和部署、具備再現性(Reproducibility)和規模化等特徵。Bazel 在谷歌大規模軟件開發實踐能力方面起着相當重要的做用。
詳情:https://www.oschina.net/p/bazel
GitHub地址:
https://github.com/bazelbuild...
1八、SyntaxNet:全球最精準天然語言解析器
SyntaxNet 是一個框架,即學術圈所指的SyntacticParser,他是許多NLU系統中的關鍵組件。在這個系統中輸入一個句子,他會自動給句子中的每個單詞 打上POS(part-of-Speech)標籤,用來描述這些詞的句法功能,並在依存句法樹中呈現。這些句法關係直接涉及句子的潛在含義。
詳情:https://www.oschina.net/p/syn...
1九、AnyPixel.js:可令用戶本身創造交互展現
AnyPixel.js 是 Google 開源的一個軟件和硬件框架,能夠用來構建各類由「像素」構成的展現,每一個像素能夠是任何一種可交互的實體對象,如 LED 燈、氣球等。
詳情:https://www.oschina.net/p/any...
20、PerfKit:雲基準測試工具
PerfKit 提供一組基準測試方法用來測量和比較雲服務。當前支持 Google 本身的 Compute Engine、亞馬遜的 AWS 和微軟的 Azure 雲。PerfKit 同時還提供一個可視化工具 PerfKit Explorer 用來比較測試結果。
詳情:https://www.oschina.net/p/per...
2一、Gson:Java的JSON類庫
Gson 是 Google 提供的用來在 Java 對象和 JSON 數據之間進行映射的 Java 類庫。能夠將一個 JSON 字符串轉成一個 Java 對象,或者反過來。
詳情:https://www.oschina.net/p/goo...
GitHub地址:
https://github.com/google/gson
2二、Eclipse ADT:Eclipse ADT logoAndroid開發插件
Eclipse ADT 是 Eclipse 平臺下用來開發 Android 應用程序的插件。
在線安裝地址:
https://dl-ssl.google.com/and...
2三、LevelDB:K/V數據庫
Leveldb是一個google實現的很是高效的kv數據庫,目前的版本1.2可以支持billion級別的數據量了。 在這個數量級別下還有着很是高的性能,主要歸功於它的良好的設計。特別是LSM算法。
LevelDB 是單進程的服務,性能很是之高,在一臺4個Q6600的CPU機器上,每秒鐘寫數據超過40w,而隨機讀的性能每秒鐘超過10w。
Github地址:
https://github.com/google/lev...
在企業使用開源和貢獻開源方面,Google一直是行業的典範。一直以來,Google都在極力推廣和倡導開源,併發布了一系列開源項目。開源中國社區目前收錄了Google 259 款開源軟件,此處不一一列舉。
IBM開源軟件
一、Apache SystemML :機器學習語言
SystemML 是靈活的,可伸縮機器學習 (ML) 語言,使用 Java 編寫。機器學習 (ML) 是指無需顯式的編程便可讓計算機學習的能力。
SystemML 先進的機器學習主要基於兩方面:SystemML 語言,聲明式機器學習 (DML)。
SystemML 包含線性代數原語,統計功能和 ML 指定結構,能夠更容易也更原生的表達 ML 算法。算法經過 R 類型或者 Python 類型的語法進行表達。DML 經過提供靈活的定製分析表達和獨立於底層輸入格式和物理數據表示的數據顯著提高數據科學的生產力。
其次,SystemML 提供自動優化功能,經過數據和集羣特性保證高效和可伸縮。SystemML 能夠在 MapReduce 或者 Spark 環境運行。
詳情:https://www.oschina.net/p/sys...
二、Kitura:Swift 的 Web 框架
Kitura,來自IBM的基於Swift的Web框架,也是一個HTTP服務器。
特性:
URL路由(GET, POST, PUT, DELETE)
URL參數
靜態文件服務
支持FastCGI
支持SSL/TLS
JSON解析
可插拔的中間件
詳情:https://www.oschina.net/p/kitura
GitHub地址:
https://github.com/IBM-Swift/...
三、TJ Bot:開源 DIY 紙板機器人
TJBot 延續了手工社區的精神,它是一套 DIY 工具包,可以讓你創建由 Waston 驅動的可編程紙板機器人。該機器人由一塊切割的紙板(能夠是 3D 打印或者激光切割)、Raspberry Pi 和多種插件(包括一個 RGB LED 燈、一個麥克風、一個伺服電機和一個攝像頭)構成。
詳情:https://www.oschina.net/p/tj-bot
四、OpenWhisk:無服務器計算平臺
OpenWhisk 是一個由 IBM 開源的、事件驅動的無服務器計算平臺,你能夠將操做代碼發送給 OpenWhisk,而後提供 OpenWhisk 代碼要處理的數據流。OpenWhisk 負責處理計算資源的擴展,這些資源是處理工做負載所須要的;你只須要處理操做代碼以及觸發這些操做的數據。
OpenWhisk 簡化了微服務的部署,消除了管理本身的消息代理或部署本身的工做服務器的需求。OpenWhisk 適用於你不但願管理任何基礎架構的項目,只需爲已完成的工做付費,不會將金錢浪費在空閒的服務器上。OpenWhisk 很容易管理活動峯值,由於它能夠外擴來知足該需求。
詳情:https://www.oschina.net/p/ope...
GitHub地址:
https://github.com/bjustin-ib...
五、Quarks:物聯網傳感器數據應用開發工具
Quarks 是 IBM 開發的一個開源開發工具,用於幫助製造商和程序員開發高效的基於物聯網傳感器數據的應用。
詳情:https://www.oschina.net/p/quarks
六、Node Application Metrics:Node.js 應用監控工具
Node Application Metrics 提供了一個基礎設施,來爲基於 Node.js 的應用收集資源和性能監控數據。Node Application Metrics 建立所基於的數據收集性能,是 Health Center 開發工具所使用的,同時也是基於 Eclipse 的 IBM 監控和診斷工具的一部分。
Node Application Metrics 公開了 JavaScript 和 C 的 API,這使得開發者工具、管理和擴展工具、性能監控工具,好比 StatsD with Graphite 或 Elasticsearch with Kibana,均可以實現數據採集。
詳情:https://www.oschina.net/p/nod...
七、Clouseau:全文搜索庫
Clouseau 經過相似 Erlang 的節點使用 Scalang 來公開 Lucene 的功能。在每一個獨立的終端窗口運行。
詳情:https://www.oschina.net/p/clo...
八、Dreyfus:全文搜索庫
Dreyfus 管理 Clouseau 節點來表現全文搜索特性。
詳情:https://www.oschina.net/p/dre...
Facebook開源軟件
一、React Native:移動開發框架
React Native是Facebook在2015年開源的基於React.js的移動開發框架,它的設計理念是讓移動應用既擁有Native的用戶體驗,同時又能夠保留React的開發效率,提升代碼的複用率。React Native的宗旨是,學習一次,高效編寫跨平臺原生應用。開發者可使用JavaScript編寫應用,並利用相同的核心代碼就能夠建立Web、iOS 和Android平臺的原生應用,目前已經實現了對iOS和Android兩大平臺的支持。
GitHub主頁:
https://github.com/facebook/r...
二、GraphQL:數據查詢語言
GraphQL是Facebook開源的數據查詢語言。Facebook在構建移動應用程序時,須要用API獲取足夠強大的數據來描述全部的臉譜,同時簡單易學易用,因而開發了GraphQL,並支持天天千億級的調用。GraphQL不是像MySQL或Redis這樣直接面向數據的接口,而是面向已經存在的應用代碼的接口。你能夠把GraphQL看做是爲了調用應用服務器上的方法的一些內嵌的RPC。
GitHub主頁:
https://github.com/facebook/g...
三、Presto:大數據查詢引擎
Presto是Facebook開發的一款分佈式SQL引擎,主要用於針對各類大小的數據源(從GB到PB)來運行交互式分析查詢。Facebook建立Presto的主要目的在於幫助他們更快地分析數據,由於Facebook的數據量一直在持續增加,產品週期的節奏也變得愈來愈快。自從2013年11月開源後,Presto的用戶量呈現了爆發式增加。諸如Airbnb、京東、Dropbox以及Netflix等公司都將Presto做爲本身的交互式查詢引擎。
GitHub主頁:
https://github.com/prestodb/p...
四、HHVM:PHP執行引擎
HHVM(HipHop Virtual Machine)是Facebook於2013年開源的PHP執行引擎。它採用一種JIT(just-in-time)的編譯機制實現了高性能,同時又保持對 PHP 語法的充分支持。HHVM經常用做獨立的服務器,用於替代Apache與mod_php,旨在執行使用Hack與PHP所編寫的程序。它使用了即時編譯方法來實現超高的性能,同時又保持了PHP開發者所習慣的靈活性。
GitHub主頁:
https://github.com/facebook/hhvm
五、React:JavaScript庫
React是Facebook開發的用於構建用戶界面的JavaScript庫,現已爲不少公司所用,由於它採用了一種不一樣的方式來構建應用:藉助於React,開發者能夠將應用分解爲彼此解耦的獨立組件,這樣就能夠獨立維護並迭代各類組件了。2015年,React有兩個主要的發佈,同時還發布了React Native,而且發佈了新的開發者工具。如今已經有愈來愈多的公司(包括Netflix與WordPress)開始使用React構建本身的產品了。
GitHub主頁:
https://github.com/facebook/r...
六、RocksDB:鍵值存儲系統
RocksDB是Facebook開源的嵌入式、可持久化鍵值存儲系統,它基於Google的LevelDB,但提升了擴展性能夠運行在多核處理器上,能夠有效使用快速存儲,支持IO綁定、內存和一次寫負荷。過去一段時間,RocksDB在社區很是流行,Facebook分析其緣由在於它可以對因爲網絡延遲等緣由形成的慢查詢響應時間起到消除的做用,RocksDB很是靈活,徹底能夠針對各類新興的硬件發展趨勢進行定製。LinkedIn與Yahoo都是RocksDB的重度使用者。
GitHub主頁:
https://github.com/facebook/r...
七、Big Sur:人工智能硬件平臺
近些年,人工智能和機器學習方向取得了長足的發展。據Kevin Lee透露,Facebook的AI軟件已經可以閱讀故事、回答相關場景的問題、玩遊戲以及經過一些例子來學習非指定的內容。做爲計算密集型的應用,AI軟件的性能與數據集規模/硬件性能密切相關。尤爲是硬件方面,高性能微處理器、存儲器以及圖形處理器(Graphics Processing Unit,GPU)的發展爲AI算法的快速運行提供了堅實基礎。爲了進一步更好地服務大規模AI計算,Facebook推出了基於GPU的、用於訓練神經網絡的「Big Sur」硬件系統。
八、ATC:網絡模擬測試工具
Augmented Traffic Control(ATC)可以利用Wi-Fi網絡模擬2G、2.5G(Edge)、3G以及LTE 4G移動網絡環境,測試工程師們能夠快速在各類不一樣的模擬網絡環境中切換,從而實現對智能手機和App在不一樣國家地區和應用環境下的性能表現進行測試。ATC是Facebook內部團隊在2013年的一次Hackathon活動上開發出來的工具,其原理實際是利用了Linux流量控制系統,經過純Python的網絡庫pyroute2調用netlink的API控制,而開發其的目的是爲了確保更多的用戶得到最好的應用體驗。
GitHub主頁:
https://github.com/facebook/a...
九、HydraBase:開源數據庫
HydraBase是HBase數據庫的升級版。Facebook是HBase的重度用戶,Facebook的HBase數據庫系統存儲着Facebook的不少關鍵業務數據,包括內部監控系統、搜索索 引、流數據分析以及數據抓取等。HydraBase相比HBase穩定性和可用性更高,能夠減小服務器宕機時間。HydraBase可以讓一個數據域分佈在多個域服務器中,域服務器之間能相互備份,所以可以大大減小數據恢復所用的時間。Facebook聲稱HydraBase能將Facebook整年的宕機時間縮減到不到5分鐘。
Facebook已經將HydraBase捐贈給Apache,目前不少代碼都已經被合併到HBase中。
詳情:https://www.oschina.net/p/hyd...
十、WebScaleSQL:關係型數據庫
WebScaleSQL是基於MySQL 5.6 社區版本改編的MySQL通用分支,基於GPL開源協議發佈。WebScaleSQL目前已經作了不少性能改進工做,包括:客戶端異步協調、邏輯預讀、查詢限流、服務端線程池優化、InnoDB大頁支持等等。WebScaleSQL上的功能都是很「Web Scale」和接地氣的。好比線程池優化,WebScaleSQL基於Mariadb的線程池實現進行重寫並優化,對讀寫隊列進行分離,從新設計隊列優先級策略,避免了餓死現象。要知道線程餓死在有些場景下是很嚴重的。尤爲是在併發鏈接數每每很大的互聯網應用裏面。
GitHub主頁:
https://github.com/webscalesq...
十一、Phabricator:代碼審查工具
代碼審查方面,Facebook開源了可視化工具Phabricator。工程師能夠在頁面上很是方便的針對每一段(單行或者多行)代碼進行交互討論;負責審查的工程師能夠接受代碼改變,能夠提出疑問要求原做者繼續修改,能夠提出本身不適合以推出該代碼審查,等等。只有代碼被明確接受以後才能被工程師提交到服務器端的代碼庫,這一點集成到提交工具中強制執行。
GitHub主頁:
https://github.com/phacility/...
十二、Proxygen:C++HTTP框架
Proxygen是一款Facebook開源的支持SPDY 3.1的HTTP框架。其目的不是替換Apache,而是有能力建立一個專用的高性能Web服務器,使其能夠嵌入到Facebook提供Web服務的現有應用中。Facebook從2011年開始構建一款代理服務器(Proxygen這個名字也是由此而來),在該項目演進並在生產環境中測試了數年以後,Facebook將其代碼開源了。 Facebook內部作的基準測試代表,在一個Proxygen echo服務器上,每秒能夠支撐多達304 197次基於SPDY 3.1的內存GET請求。
GitHub主頁:
https://github.com/facebook/p...
1三、Pop:開源動畫庫
Pop是Facebook推出的一個可擴展的iOS 和OS X動畫庫,其新聞聚合閱讀應用Paper背後的核心技術就是由Pop支持。除了增長基本的靜態動畫外,還支持Spring和衰變更態動畫,可很是方便的構建現實的、基於物理的交互。Pop動畫庫的動畫效果很是流暢,由於它使用了CADisplayLink來刷新畫面(幀),一秒鐘刷新幀數爲60幀,接近於遊戲開發引擎。Pop動畫的自成體系,與系統的CoreAnimation有很大的區別,但使用上很是類似。
GitHub主頁:
https://github.com/facebook/pop
1四、Infer:靜態代碼分析工具
Infer是Facebook的開發團隊在代碼提交內部評審時,用來執行增量分析的一款靜態分析工具,在代碼提交到代碼庫或者部署到用戶的設備以前找出bug。由OCaml語言編寫的Infer目前能檢測出空指針訪問、資源泄露以及內存泄露,可對C、Java或Objective-C代碼進行檢測。
Facebook使用Infer自動驗證iOS和安卓上的移動應用的代碼,bug報告的正確率達80%。Infer經過捕獲編譯命令,把要被編譯的文件轉換爲可用於分析潛在錯誤的中間語言格式。整個過程是增量進行的,意味着一般只有那些有修改過並提交編譯的文件纔會被Infer分析。Infer還集成了大量的構建或編譯工具,包括Gradle、Maven、Buck、Xcodebuild、clang、make和javac。
GitHub主頁:
https://github.com/facebook/i...
1五、osquery:操做系統監控工具
osquery是一款面向OSX和Linux的操做系統檢測框架。它將操做系統暴露爲一個高性能的關係型數據庫,容許用戶編寫SQL查詢查看操做系統數據。在osquery中,SQL表表明像下面這樣的抽象概念:
正在運行的進程
已加載的內核模塊
打開的網絡鏈接
GitHub主頁:
https://github.com/facebook/o...
1六、Flow:JavaScript靜態類型檢查工具
Flow是Facebook出品的一個JavaScript代碼的靜態類型檢查工具,該工具採用開放源碼的OCaml(Objective Caml)語言開發,。Flow可以幫助開發人員查找出JavaScript代碼中的類型錯誤,從而提升開發效率和代碼質量。Flow已經可以捕獲JavaScript代碼中的常見問題,如靜態類型轉換不匹配、空指針引用等問題。同時,Flow還爲JavaScript新增了類型語法,如類型別名。
GitHub主頁:
https://github.com/facebook/flow
1七、Flux:Web應用架構
Flux是一個Facebook開發的、利用單向數據流實現的應用架構,用於 React。Flux應用有三個主要的部分組成:調度程序、存儲和視圖(React 組件)。
GitHub主頁:
https://github.com/facebook/flux
1八、Stetho:Android調試工具
Stetho是一個Android應用的調試工具。當Android應用集成Stetho時,開發者能夠經過訪問Chrome,在Chrome Developer Tools中查看應用佈局、網絡請求、sqlite、preference等等,可視化一切應用操做(更重要的是不用root)。開發者也可經過它的dumpapp工具提供的命令行接口來訪問應用內部。
GitHub主頁:
https://github.com/facebook/s...
VMware開源軟件
一、Cloud Foundry:開源PaaS平臺
Cloud Foundry是VMware於2011年4月12日推出的業界第一個開源PaaS雲平臺,它支持多種框架、語言、運行時環境、雲平臺及應用服務,使開發 人員可以在幾秒鐘內進行應用程序的部署和擴展,無需擔憂任何基礎架構的問題。
同時,它自己是一個基於Ruby on Rails的由多個相對獨立的子系統經過消息機制組成的分佈式系統,使平臺在各層級均可水平擴展,既能在大型數據中內心運行,也能運行在一臺桌面電腦中, 兩者使用相同的代碼庫。
做爲新一代雲應用平臺,Cloud Foundry專爲私有云計算環境、企業級數據中心和公有云服務提供商所打造。Cloud Foundry雲平臺能夠簡化現代應用程序的開發、交付和運行過程,在面對多種公有云和私有云選擇、符合業界標準的高效開發框架以及應用基礎設施服務時, 能夠顯著提升開發者在雲環境中部署和運行應用程序的能力。
Cloud Foundry爲開發者構建了具備足夠選擇性的PaaS雲平臺,它同時支持多種開發框架、編程語言、應用服務以及多種雲部署環境的靈活選擇
詳情:https://www.oschina.net/p/clo...
二、ESXi:虛擬化系統
ESXi (VMware vSphere Hypervisor)專爲運行虛擬機、最大限度下降配置要求和簡化部署而設計。只需幾分鐘時間,客戶即可完成從安裝到運行虛擬機的全過程,特別是在下載並安裝預配置虛擬設備的時候。在VMware Virtual Appliance Marketplace 上有800多款爲VMware hypervisor 建立的虛擬設備,現在,ESXi已經實現了與Virtual Appliance Marketplace的直接整合,使用戶可以即刻下載並運行虛擬設備。這爲即插即用型軟件的交付與安裝提供了一種全新和極其簡化的方式。
詳情:https://www.oschina.net/p/esxi
三、Harbor:企業級 Registry 服務器
Harbor 包括了權限管理(RBAC)、LDAP、審計、管理界面、自我註冊、HA 等企業必需的功能,同時針對中國用戶的特色,設計鏡像複製和中文支持等功能,歡迎使用和反饋意見。
做爲一個企業級私有 Registry 服務器,Harbor 提供了更好的性能和安全。提高用戶使用 Registry 構建和運行環境傳輸鏡像的效率。Harbor 支持安裝在多個 Registry 節點的鏡像資源複製,鏡像所有保存在私有 Registry 中, 確保數據和知識產權在公司內部網絡中管控。另外,Harbor 也提供了高級的安全特性,諸如用戶管理,訪問控制和活動審計等。
詳情:https://www.oschina.net/p/harbor
四、VMware View Open Client:虛擬桌面環境
VMware View Open Clien 是 VMware 以 LGPL V2.1 許可發佈了一個開源的 Linux VDI(virtual desktop infrastructure)客戶端。主要用於訪問由 VMware View 所管理的個性化虛擬桌面環境。目前 VMware View Open Clien 提供下列功能:
支持使用 SSL 建立安全隧道
支持利用 RSA SecurID 進行雙重認證
提供Novell SLETC Add-On RPM 包
全命令行界面
詳情:https://www.oschina.net/p/vmw...
五、Photon Controller:集羣管理系統
Photon Controller 是開源的硬件,容器和集羣管理系統。是一套分佈式、API 驅動型多租戶控制平臺,旨在最大程度提高擴展能力與容器承載量,且可以根據開發者的實際須要支持 Docker Swarm、Cloud Foundry、Kubernetes 以及 Mesos 等多種相關方案。
詳情:https://www.oschina.net/p/pho...
六、Serengeti:Hadoop部署管理和擴展
支持企業可以在虛擬和雲環境中快速部署、管理和擴展Apache Hadoop。此外,VMware與Apache Hadoop社區共同合做研發擴展功能,讓主要組件能夠「感知虛擬化」以支持靈活擴展,並進一步提升Hadoop在虛擬化環境中的性能。
Serengeti基於Apache 2.0許可證。它是一鍵式部署工具包,支持企業可以利用VMware vSphere平臺在幾分鐘內部署高度可用的Apache Hadoop集羣,包括Apache Pig和Apache Hive等常見的Hadoop組件。經過使用Serengeti在VMware vSphere上運行Hadoop,企業能夠輕鬆享受到值得信賴、普遍部署的全球虛擬化平臺的高可用性、容錯性和現場遷移能力,從而實現Hadoop集羣的可用性和可管理性。
詳情:https://www.oschina.net/p/ser...
GitHub地址:
https://github.com/vmware-ser...
eBay開源軟件
一、Apache Griffin:開源數據質量解決方案
Apache Griffin是一個應用於分佈式數據系統中的開源數據質量解決方案。在Hadoop, Spark, Storm等分佈式系統中,提供了一整套統一的流程來定義和檢測數據集的質量並及時報告問題。
Apache Griffin填補了開源世界裏在大數據質量領域的空白。就像空氣質量,水和食品安全等無時不刻地在影響人類的生命同樣,數據質量在數據科學領域是相當重要的。在大數據時代,企業決策調整,商機發現等愈來愈依賴於大數據的數據分析和數據挖掘,而數據質量的保證是全部一切數據分析和數據挖掘的基礎。
詳情:https://www.oschina.net/p/gri...
二、Turmeric:開源SOA平臺
Turmeric是eBay公司開發的SOA開源平臺。這個平臺擁有一個完整的安全措施驅動的保安系統,它基於Java,遵照WSDL, SOAP, XML, JSON, XACML, REST等主要標準,支持各類協議和數據格式的可插拔,可用於SOA的服務端以及應用端的開發、部署、安全保護、運行和監控。平臺提供了Eclipse 插件,輔助SOASOA的服務端以及應用端程序的開發。當前發佈的版本是1.0.0 GA,包括eBay公司內部使用的相似平臺的大部分組件,只是將其中依賴於商業產品的一些功能去除,並代之以開源的等價實現。
詳情:https://www.oschina.net/p/tur...
三、REST Superman:Web服務器監控和管理
REST Superman 已更名REST Commander是 eBay 開發的一個使用快速並行的異步 HTTP/REST/SOAP 客戶端開發的服務用來監控和管理10000臺 Web 服務器,可在 10 秒內發送請求到 1000 臺服務器,或者 50 秒內發送請求到 10000 臺服務器。
詳情:https://www.oschina.net/p/res...
GitHub地址:
https://github.com/eBay/restc...
四、Apache Eagle:Hadoop 數據安全方案
Apache Eagle提供一套高效分佈式的流式策略引擎,具備高實時、可伸縮、易擴展、交互友好等特色,同時集成機器學習對用戶行爲創建Profile以實現實時智能實時地保護Hadoop生態系統中大數據的安全。
Eagle 是開源分佈式實時Hadoop數據安全方案,支持數據行爲實時監控,能當即監測出對敏感數據的訪問或惡意的操做,並當即採起應對的措施。Eagle具備以下特色:高實時、可伸縮、簡單易用、用戶Profile。
詳情:https://www.oschina.net/p/apa...
五、Parallec:HTTP/SSH/TCP/Ping並行客戶端
Parallec是一個基於Akka的快速並行異步HTTP(S)/SSH/TCP/UDP/Ping 客戶端的Java庫。它是eBay雲計算部門開發並在REST Superman基礎上開源的。
詳情:https://www.oschina.net/p/par...
GitHub地址:
https://github.com/eBay/parallec
六、fabio:HTTP(S) 路由器
fabio 由 eBay Classifieds Group 開發, 用於處理 marktplaats.nl 和 kijiji.it 的流量。Marktplaats 全部的流量都通過 fabio ,每秒有數千個請求,分發於數個 fabio 實例。但咱們並無觀察到任何延遲。
詳情:https://www.oschina.net/p/fabio
GitHub地址:
https://github.com/fabiolb/fabio
七、Ebay Pulsar:實時大數據分析平臺
Pulsar 做爲一個復瑣事件處理平臺,具備快速,準確,靈活的特性,保證點到點的低延時和高可靠,從而很好得知足了的eBay秒級實時數據分析的需求。同時每秒百萬級流量處理能力,給客戶帶來更好的個性化體驗,幫助客戶監控實時業務信息並定製實時營銷策路,及時監測網絡欺詐行爲並減小機器人干預。而且Pulsar是基於標準的分佈式雲架構部署並跨越多個數據中心,從而保證了在系統升級和拓撲更新時沒有集羣停機時間。
詳情:https://www.oschina.net/p/eba...
Twitter開源軟件
一、Typeahead.js:jQuery插件,快速、全功能的自動完成庫
Typeahead.js是Twitter的一個jQuery插件,支持遠程和本地的數據集。比較有特點的地方在於,你能夠將數據集使用本地存儲(local storage)來保存在本地,有效的提升用戶體驗。同時也擁有不少遠程數據集的處理選項,例如請求頻率,最大的併發請求數,等等。
GitHub主頁:
https://github.com/twitter/ty...
二、Twemoji:JavaScript庫
Twemoji是Twitter於2014年開源的完整的Emoji表情圖片,Twemoji包含872個表情,兼容最新的Unicode 7.0。Emoji,來自日本的小巧符號,經過圖像表達感情,已經征服了移動互聯網的信息世界。如今,你能夠在虛擬世界中隨處使用它們。開發者能夠去GitHub下載完整的表情庫,並把這些表情加入到本身的應用或網頁中。
GitHub主頁:
https://github.com/twitter/tw...
三、Hogan.js:JavaScript模板引擎
Hogan.js是Twitter團隊所製做的一個針對mustache模板的語法解析器。Hogan.js不依賴其餘任何庫或框架,同時保證了高效率的模板解析,而其體積卻僅有2.5K。用它做爲你的一部分資產打包編譯模板提早或將它包括在你的瀏覽器來處理動態模板。
GitHub主頁:
http://twitter.github.com/hog...
四、Finagle:RPC框架
Finagle是一個容許開發者使用Java、Scala或其餘JVM語言來構建異步RPC服務器和客戶端的庫,主要用於Twitter的後端服務。Finagle是Twitter基於Netty開發的支持容錯的、協議無關的RPC框架,該框架支撐了Twitter的核心服務。
Twitter面向服務的架構是由一個龐大的Ruby on Rails應用轉化而來的。爲了適應這種架構的變化,須要有一個高性能的、支持容錯的、協議無關且異步的RPC框架。在面向服務的架構之中,服務會將大多數的時間花費在等待上游服務的響應上,所以使用異步的庫可以讓服務併發地處理請求,從而充分發揮硬件的潛能。Finagle構建在Netty之上,並非直接在原生NIO之上構建的,這是由於Netty已經解決了許多Twitter所遇到的問題並提供了乾淨整潔的API。
GitHub主頁:
https://github.com/twitter/fi...
五、Diffy:自動化測試工具
Diffy是一個開源的自動化測試工具,它可以自動檢測基於Apache Thrift或者基於HTTP的服務。使用Diffy,只須要進行簡單的配置,以後不須要再編寫測試代碼。
Diffy主要基於穩定版本和它的副本的輸出,對候選版本的輸出進行比較,以檢查候選版本是否正確。所以,Diffy首先假設候選版本應該和穩定版本有「類似」的輸出。即不論候選版本和穩定版本系統模塊是否相同,他們的最終輸出應該是「類似」的。這裏一直使用「類似」,而不是使用相同,是由於相同請求可能會有一些Diffy不須要關心的干擾。
GitHub主頁:
https://github.com/twitter/diffy
六、Scalding:Scala庫
Scalding是一個Scala庫,簡化了Hadoop MapReduce做業開發,基於Cascading構建。Scalding跟Pig相似,但提供更緊密的Scala集成。Scalding是用於Cascading的Scala API。Cascading是一個構建於Hadoop上的API,用來建立複雜和容錯數據處理工做流,它抽象了集羣拓撲結構和配置,容許開發者快速開發複雜分佈式的應用,而不用考慮背後的MapReduce。
GitHub主頁:
https://github.com/twitter/sc...
七、Heron:數據實時分析平臺
在Twitter,Heron做爲主要的流媒體系統,運行數以百萬計的開發和生產topologies。因爲Heron可高效使用資源,在遷移Twitter全部的topologies後,總體硬件減小了3倍,致使Twitter的基礎設置效率有了顯著的提高。
GitHub主頁:
https://github.com/twitter/heron
八、SecureHeaders:Web安全開發工具
SecureHeaders是Twitter送給Web開發者的一份大禮,做爲一款Web安全開發工具,Secureheaders可以自動實施安全相關的header規則,包括內容安全政策(CSP),防止XSS、HSTS等攻擊,防止火綿羊(Firesheep)攻擊以及XFO點擊劫持等。
GitHub主頁:
https://github.com/twitter/se...
九、Twemproxy:代理服務器
Twemproxy是一個快速的單線程代理程序,支持Memcached ASCII協議和更新的Redis協議。它所有用C寫成,使用Apache 2.0 License受權。Twemproxy的強大之處在於能夠經過配置的方式讓它禁用掉失敗的結點,同時還能在一段時間後進行重試,抑或使用指定的鍵->服務器映射。這意味着在將Redis用做數據存儲時,它能夠對Redis數據集進行分片(禁用掉結點驅逐);在將Redis用做緩存時,它能夠啓用結點驅逐以實現簡單的高可用性。
GitHub主頁:
https://github.com/twitter/tw...
十、Bootstrap:Web 前端 UI 框架
Bootstrap 是快速開發 Web 應用程序的前端工具包。它是一個 CSS,HTML 和 JS 的集合,它使用了最新的瀏覽器技術,給你的 Web 開發提供了時尚的版式,表單,buttons,表格,網格系統等等。
GitHub地址:
https://github.com/twbs/boots...
從Twitter的GitHub帳戶中能夠看到,Twitter已經開源的開源項目有近200個,領域涉及分佈式架構、大數據、異步網絡傳輸(客戶端、服務端)、Web、工具等,本文列舉經常使用到的項目。
寫給讀者
愈來愈多的公司正走向開源,編程語言、操做系統、框架、平臺、數據庫等方方面面開源軟件也愈來愈多,這些開源項目爲咱們的工做帶來不少方便,能夠直接「拿來」解決技術問題,不用重複造輪子,提升效率的同時也極大地下降了研發成本。
除了軟件能夠開源以外,研發實踐也能夠開源共享,第六屆TOP100全球軟件案例研究峯會將於11月9-12日在北京國家會議中心舉辦,甄選100個本年度最具行業表明性的軟件研發案例,現場解讀其解決方案和背後的技術邏輯,幫助研發團隊快速提升效能。
更多TOP100案例信息及日程請前往[官網]查閱。4天時間集中分享2017年最值得學習的100個研發案例實踐。本平臺共送出10張開幕式單天免費體驗票,登陸TOP100summit官網便可申請,數量有限,先到先得。