阿里&百度&騰訊&facebook&Microsoft&Google開源項(xiàng)目匯總
Tencent
- GitHub地址:https://github.com/Tencent/tinker
Tinker是Android的熱修復(fù)解決方案庫(kù)虚循,它支持dex暑脆,庫(kù)和資源更新,無(wú)需重新安裝apk决采。
- GitHub地址:https://github.com/Tencent/Tars
Tars是基于使用tars協(xié)議的命名服務(wù)的高性能rpc框架,并提供了半自動(dòng)操作平臺(tái)械筛。
- GitHub地址:https://github.com/Tencent/MSEC
群發(fā)服務(wù)引擎(MSEC)由騰訊QQ團(tuán)隊(duì)開源。它是一個(gè)后端DEV和OPS引擎哟绊,包括RPC铜跑,名稱查找门怪,負(fù)載平衡,監(jiān)控锅纺,發(fā)布和容量管理掷空。 http://haomiao.qq.com
- GitHub地址:https://github.com/Tencent/mars
Mars是由WeChat開發(fā)的跨平臺(tái)網(wǎng)絡(luò)組件。
- GitHub地址:https://github.com/Tencent/bk-cmdb
藍(lán)鯨智云配置平臺(tái)(blueking cmdb) http://bk.tencent.com
- GitHub地址:https://github.com/tencent/libco
Libco是微信后臺(tái)大規(guī)模使用的C/C++協(xié)程庫(kù)囤锉,2013年至今穩(wěn)定運(yùn)行在微信后臺(tái)的數(shù)萬(wàn)臺(tái)機(jī)器上坦弟。Libco提供了完善的協(xié)程編程接口、常用的Socket族函數(shù)Hook等官地,使得業(yè)務(wù)可用同步編程模型快速迭代開發(fā)酿傍。
早期微信后臺(tái)因?yàn)闃I(yè)務(wù)需求復(fù)雜多變、產(chǎn)品要求快速迭代等需求区丑,大部分模塊都采用了半同步半異步模型拧粪。接入層為異步模型修陡,業(yè)務(wù)邏輯層則是同步的多進(jìn)程或多線程模型沧侥,業(yè)務(wù)邏輯的并發(fā)能力只有幾十到幾百。隨著微信業(yè)務(wù)的增長(zhǎng)魄鸦,系統(tǒng)規(guī)模變得越來越龐大宴杀,每個(gè)模塊很容易受到后端服務(wù)/網(wǎng)絡(luò)抖動(dòng)的影響∈耙颍基于這樣的背景旺罢,微信開發(fā)了Libco,實(shí)現(xiàn)了對(duì)業(yè)務(wù)邏輯非侵入的異步化改造绢记。
PhxPaxos是微信后臺(tái)團(tuán)隊(duì)自主研發(fā)的一套基于Paxos協(xié)議的多機(jī)狀態(tài)拷貝類庫(kù)扁达。它以庫(kù)函數(shù)的方式嵌入到開發(fā)者的代碼當(dāng)中,使得一些單機(jī)狀態(tài)服務(wù)可以擴(kuò)展到多機(jī)器蠢熄,從而獲得強(qiáng)一致性的多副本以及自動(dòng)容災(zāi)的特性跪解。PhxPaxos在微信服務(wù)里面經(jīng)過一系列的工程驗(yàn)證和大量的惡劣環(huán)境下的測(cè)試,在一致性的保證上極為健壯签孔。
PhxPaxos的特性包括使用基于消息傳遞機(jī)制的純異步工程架構(gòu)叉讥、每次寫盤使用fsync嚴(yán)格保證正確性、支持Checkpoint以及對(duì)PaxosLog的自動(dòng)清理饥追、使用點(diǎn)對(duì)點(diǎn)流式協(xié)議進(jìn)行快速學(xué)習(xí)图仓、支持跨機(jī)器的Checkpoint自動(dòng)拉取、內(nèi)置Master選舉功能但绕、自適應(yīng)的過載保護(hù)等救崔。
PhxSQL是一個(gè)兼容MySQL、服務(wù)高可用、數(shù)據(jù)強(qiáng)一致的關(guān)系型數(shù)據(jù)庫(kù)集群六孵。PhxSQL以單Master多Slave方式部署碳竟,在集群內(nèi)超過一半機(jī)器存活的情況下、即可提供服務(wù)狸臣,并且自身實(shí)現(xiàn)自動(dòng)Master切換莹桅、保證數(shù)據(jù)一致性。PhxSQL不依賴于ZooKeeper等任何第三方做存活檢測(cè)及選主烛亦。PhxSQL基于MySQL的一個(gè)分支Percona 5.6開發(fā)诈泼,功能和實(shí)現(xiàn)與MySQL基本一致。
MySQL主備在主機(jī)上支持完整SQL煤禽、全局事務(wù)铐达、以repeatable read和serializable級(jí)別的事務(wù)隔離,在金融檬果、帳號(hào)等關(guān)鍵業(yè)務(wù)中有巨大的價(jià)值瓮孙。但是MySQL傳統(tǒng)主備方案也有其缺點(diǎn)。最明顯的就是主機(jī)故障后的自動(dòng)換主和新舊主數(shù)據(jù)一致性选脊,即所謂的一致性和可用性杭抠。為了解決這個(gè)問題,并同時(shí)完全兼容MySQL恳啥,微信在MySQL的基礎(chǔ)上應(yīng)用Paxos偏灿,設(shè)計(jì)和開發(fā)了PhxSQL。
PhxRPC是微信后臺(tái)團(tuán)隊(duì)推出的一個(gè)簡(jiǎn)潔小巧的RPC框架钝的,編譯生成的庫(kù)只有450K(編譯只依賴第三方庫(kù)Protobuf)翁垂。PhxRPC的特性如下:
- 使用Protobuf作為IDL用于描述RPC接口以及通信數(shù)據(jù)結(jié)構(gòu)。
- 基于Protobuf文件自動(dòng)生成Client以及Server接口硝桩,用于Client的構(gòu)建沿猜,以及Server的實(shí)現(xiàn)。
- 半同步半異步模式碗脊,采用獨(dú)立多IO線程啼肩,通過Epoll管理請(qǐng)求的接入以及讀寫,工作線程采用固定線程池望薄。IO線程與工作線程通過內(nèi)存隊(duì)列進(jìn)行交互疟游。
- 提供完善的過載保護(hù),無(wú)需配置閾值痕支,支持動(dòng)態(tài)自適應(yīng)拒絕請(qǐng)求颁虐。
- 提供簡(jiǎn)易的Client/Server配置讀入方式。
基于lambda函數(shù)實(shí)現(xiàn)并發(fā)訪問Server卧须,可以非常方便地實(shí)現(xiàn)Google提出的 Backup Requests 模式另绩。
- GitHub地址:https://github.com/Tencent/mars
Mars是微信官方的終端基礎(chǔ)組件儒陨,是一個(gè)結(jié)合移動(dòng)應(yīng)用所設(shè)計(jì)的基于Socket層的解決方案,在網(wǎng)絡(luò)調(diào)優(yōu)方面有更好的可控性笋籽,采用C++開發(fā)蹦漠。目前已接入微信 Android、iOS车海、Mac笛园、Windows、WP 等客戶端侍芝。
- GitHub地址:https://github.com/Tencent/tinker
Tinker是微信官方的Android熱補(bǔ)丁解決方案研铆,它支持動(dòng)態(tài)下發(fā)代碼、So庫(kù)以及資源州叠,讓應(yīng)用能夠在不需要重新安裝的情況下實(shí)現(xiàn)更新棵红。
Tinker的具體設(shè)計(jì)目標(biāo)如下:
開發(fā)透明:開發(fā)者無(wú)需關(guān)心是否在補(bǔ)丁版本,他可以隨意修改咧栗,不由框架限制逆甜。
性能無(wú)影響:補(bǔ)丁框架不能對(duì)應(yīng)用帶來性能損耗。
完整支持:支持代碼致板,So 庫(kù)以及資源的修復(fù)交煞,可以發(fā)布功能。
補(bǔ)丁大小較锌善瘛: 補(bǔ)丁大小應(yīng)該盡量的小错敢,提高升級(jí)率。
穩(wěn)定缕粹,兼容性好:保證微信的數(shù)億用戶的使用,盡量減少反射纸淮。
Alibaba
Baidu
Security
自動(dòng)SQL注入和數(shù)據(jù)庫(kù)接管工具http://sqlmap.org
- GitHub主頁(yè):https://github.com/facebook/react-native
React Native是Facebook在2015年開源的基于React.js的移動(dòng)開發(fā)框架平斩,它的設(shè)計(jì)理念是讓移動(dòng)應(yīng)用既擁有Native的用戶體驗(yàn),同時(shí)又可以保留React的開發(fā)效率咽块,提高代碼的復(fù)用率绘面。React Native的宗旨是,學(xué)習(xí)一次侈沪,高效編寫跨平臺(tái)原生應(yīng)用揭璃。開發(fā)者可以使用JavaScript編寫應(yīng)用,并利用相同的核心代碼就可以創(chuàng)建Web亭罪、iOS 和Android平臺(tái)的原生應(yīng)用瘦馍,目前已經(jīng)實(shí)現(xiàn)了對(duì)iOS和Android兩大平臺(tái)的支持。
- GitHub主頁(yè):https://github.com/facebook/graphql
GraphQL是Facebook開源的數(shù)據(jù)查詢語(yǔ)言应役。Facebook在構(gòu)建移動(dòng)應(yīng)用程序時(shí)情组,需要用API獲取足夠強(qiáng)大的數(shù)據(jù)來描述所有的臉譜燥筷,同時(shí)簡(jiǎn)單易學(xué)易用,于是開發(fā)了GraphQL院崇,并支持每天千億級(jí)的調(diào)用肆氓。GraphQL不是像MySQL或Redis這樣直接面向數(shù)據(jù)的接口,而是面向已經(jīng)存在的應(yīng)用代碼的接口底瓣。你可以把GraphQL看作是為了調(diào)用應(yīng)用服務(wù)器上的方法的一些內(nèi)嵌的RPC谢揪。
- GitHub主頁(yè):https://github.com/prestodb/presto
Presto是Facebook開發(fā)的一款分布式SQL引擎,主要用于針對(duì)各種大小的數(shù)據(jù)源(從GB到PB)來運(yùn)行交互式分析查詢捐凭。Facebook創(chuàng)建Presto的主要目的在于幫助他們更快地分析數(shù)據(jù)键耕,因?yàn)镕acebook的數(shù)據(jù)量一直在持續(xù)增長(zhǎng),產(chǎn)品周期的節(jié)奏也變得越來越快柑营。自從2013年11月開源后屈雄,Presto的用戶量呈現(xiàn)了爆發(fā)式增長(zhǎng)。諸如Airbnb官套、京東酒奶、Dropbox以及Netflix等公司都將Presto作為自己的交互式查詢引擎。
- GitHub主頁(yè):https://github.com/facebook/hhvm
HHVM(HipHop Virtual Machine)是Facebook于2013年開源的PHP執(zhí)行引擎奶赔。它采用一種JIT(just-in-time)的編譯機(jī)制實(shí)現(xiàn)了高性能惋嚎,同時(shí)又保持對(duì) PHP 語(yǔ)法的充分支持。HHVM常常用作獨(dú)立的服務(wù)器站刑,用于替代Apache與mod_php另伍,旨在執(zhí)行使用Hack與PHP所編寫的程序。它使用了即時(shí)編譯方法來實(shí)現(xiàn)超高的性能绞旅,同時(shí)又保持了PHP開發(fā)者所習(xí)慣的靈活性摆尝。
- GitHub主頁(yè):https://github.com/facebook/react
React是Facebook開發(fā)的用于構(gòu)建用戶界面的JavaScript庫(kù),現(xiàn)已為很多公司所用因悲,因?yàn)樗捎昧艘环N不同的方式來構(gòu)建應(yīng)用:借助于React堕汞,開發(fā)者可以將應(yīng)用分解為彼此解耦的獨(dú)立組件,這樣就可以獨(dú)立維護(hù)并迭代各種組件了晃琳。2015年讯检,React有兩個(gè)主要的發(fā)布,同時(shí)還發(fā)布了React Native卫旱,并且發(fā)布了新的開發(fā)者工具∪俗疲現(xiàn)在已經(jīng)有越來越多的公司(包括Netflix與WordPress)開始使用React構(gòu)建自己的產(chǎn)品了。
- GitHub主頁(yè):https://github.com/facebook/rocksdb
RocksDB是Facebook開源的嵌入式顾翼、可持久化鍵值存儲(chǔ)系統(tǒng)投放,它基于Google的LevelDB,但提高了擴(kuò)展性可以運(yùn)行在多核處理器上暴构,可以有效使用快速存儲(chǔ)跪呈,支持IO綁定段磨、內(nèi)存和一次寫負(fù)荷。過去一段時(shí)間耗绿,RocksDB在社區(qū)非常流行苹支,F(xiàn)acebook分析其原因在于它能夠?qū)τ捎诰W(wǎng)絡(luò)延遲等原因造成的慢查詢響應(yīng)時(shí)間起到消除的作用,RocksDB非常靈活误阻,完全可以針對(duì)各種新興的硬件發(fā)展趨勢(shì)進(jìn)行定制债蜜。LinkedIn與Yahoo都是RocksDB的重度使用者。
人工智能硬件平臺(tái):Big Sur
GitHub主頁(yè):https://github.com/facebook/augmented-traffic-control
Augmented Traffic Control(ATC)能夠利用Wi-Fi網(wǎng)絡(luò)模擬2G究反、2.5G(Edge)寻定、3G以及LTE 4G移動(dòng)網(wǎng)絡(luò)環(huán)境,測(cè)試工程師們可以快速在各種不同的模擬網(wǎng)絡(luò)環(huán)境中切換精耐,從而實(shí)現(xiàn)對(duì)智能手機(jī)和App在不同國(guó)家地區(qū)和應(yīng)用環(huán)境下的性能表現(xiàn)進(jìn)行測(cè)試狼速。ATC是Facebook內(nèi)部團(tuán)隊(duì)在2013年的一次Hackathon活動(dòng)上開發(fā)出來的工具,其原理實(shí)際是利用了Linux流量控制系統(tǒng)卦停,通過純Python的網(wǎng)絡(luò)庫(kù)pyroute2調(diào)用netlink的API控制向胡,而開發(fā)其的目的是為了確保更多的用戶獲得最好的應(yīng)用體驗(yàn)。
- GitHub主頁(yè):https://github.com/webscalesql/webscalesql-5.6
WebScaleSQL是基于MySQL 5.6 社區(qū)版本改編的MySQL通用分支惊完,基于GPL開源協(xié)議發(fā)布僵芹。WebScaleSQL目前已經(jīng)做了很多性能改進(jìn)工作,包括:客戶端異步協(xié)調(diào)小槐、邏輯預(yù)讀拇派、查詢限流、服務(wù)端線程池優(yōu)化凿跳、InnoDB大頁(yè)支持等等件豌。WebScaleSQL上的功能都是很“Web Scale”和接地氣的。比如線程池優(yōu)化拄显,WebScaleSQL基于Mariadb的線程池實(shí)現(xiàn)進(jìn)行重寫并優(yōu)化苟径,對(duì)讀寫隊(duì)列進(jìn)行分離,重新設(shè)計(jì)隊(duì)列優(yōu)先級(jí)策略躬审,避免了餓死現(xiàn)象。要知道線程餓死在有些場(chǎng)景下是很嚴(yán)重的蟆盐。尤其是在并發(fā)連接數(shù)往往很大的互聯(lián)網(wǎng)應(yīng)用里面承边。
- GitHub主頁(yè):https://github.com/phacility/phabricator
代碼審查方面,F(xiàn)acebook開源了可視化工具Phabricator石挂。工程師可以在頁(yè)面上非常方便的針對(duì)每一段(單行或者多行)代碼進(jìn)行交互討論博助;負(fù)責(zé)審查的工程師可以接受代碼改變,可以提出疑問要求原作者繼續(xù)修改痹愚,可以提出自己不適合以推出該代碼審查富岳,等等蛔糯。只有代碼被明確接受之后才能被工程師提交到服務(wù)器端的代碼庫(kù),這一點(diǎn)集成到提交工具中強(qiáng)制執(zhí)行窖式。
- GitHub主頁(yè):https://github.com/facebook/proxygen
Proxygen是一款Facebook開源的支持SPDY 3.1的HTTP框架蚁飒。其目的不是替換Apache,而是有能力創(chuàng)建一個(gè)專用的高性能Web服務(wù)器萝喘,使其可以嵌入到Facebook提供Web服務(wù)的現(xiàn)有應(yīng)用中淮逻。Facebook從2011年開始構(gòu)建一款代理服務(wù)器(Proxygen這個(gè)名字也是由此而來),在該項(xiàng)目演進(jìn)并在生產(chǎn)環(huán)境中測(cè)試了數(shù)年之后阁簸,F(xiàn)acebook將其代碼開源了爬早。 Facebook內(nèi)部做的基準(zhǔn)測(cè)試表明,在一個(gè)Proxygen echo服務(wù)器上启妹,每秒可以支撐多達(dá)304 197次基于SPDY 3.1的內(nèi)存GET請(qǐng)求筛严。
- GitHub主頁(yè):https://github.com/facebook/pop
Pop是Facebook推出的一個(gè)可擴(kuò)展的iOS 和OS X動(dòng)畫庫(kù),其新聞聚合閱讀應(yīng)用Paper背后的核心技術(shù)就是由Pop支持饶米。除了增加基本的靜態(tài)動(dòng)畫外桨啃,還支持Spring和衰變動(dòng)態(tài)動(dòng)畫,可非常方便的構(gòu)建現(xiàn)實(shí)的咙崎、基于物理的交互优幸。Pop動(dòng)畫庫(kù)的動(dòng)畫效果非常流暢,因?yàn)樗褂昧薈ADisplayLink來刷新畫面(幀)褪猛,一秒鐘刷新幀數(shù)為60幀网杆,接近于游戲開發(fā)引擎。Pop動(dòng)畫的自成體系伊滋,與系統(tǒng)的CoreAnimation有很大的區(qū)別碳却,但使用上非常相似。
- GitHub主頁(yè):https://github.com/facebook/infer
Infer是Facebook的開發(fā)團(tuán)隊(duì)在代碼提交內(nèi)部評(píng)審時(shí)笑旺,用來執(zhí)行增量分析的一款靜態(tài)分析工具昼浦,在代碼提交到代碼庫(kù)或者部署到用戶的設(shè)備之前找出bug。由OCaml語(yǔ)言編寫的Infer目前能檢測(cè)出空指針訪問筒主、資源泄露以及內(nèi)存泄露关噪,可對(duì)C、Java或Objective-C代碼進(jìn)行檢測(cè)乌妙。Facebook使用Infer自動(dòng)驗(yàn)證iOS和安卓上的移動(dòng)應(yīng)用的代碼使兔,bug報(bào)告的正確率達(dá)80%。Infer通過捕獲編譯命令藤韵,把要被編譯的文件轉(zhuǎn)換為可用于分析潛在錯(cuò)誤的中間語(yǔ)言格式虐沥。整個(gè)過程是增量進(jìn)行的,意味著通常只有那些有修改過并提交編譯的文件才會(huì)被Infer分析。Infer還集成了大量的構(gòu)建或編譯工具欲险,包括Gradle镐依、Maven、Buck天试、Xcodebuild槐壳、clang、make和javac秋秤。
- GitHub主頁(yè):https://github.com/facebook/osquery
osquery是一款面向OSX和Linux的操作系統(tǒng)檢測(cè)框架宏粤。它將操作系統(tǒng)暴露為一個(gè)高性能的關(guān)系型數(shù)據(jù)庫(kù),允許用戶編寫SQL查詢查看操作系統(tǒng)數(shù)據(jù)灼卢。在osquery中绍哎,SQL表代表像下面這樣的抽象概念:
- 正在運(yùn)行的進(jìn)程
- 已加載的內(nèi)核模塊
- 打開的網(wǎng)絡(luò)連接
雖然osquery利用了非常底層的操作系統(tǒng)API,但它允許用戶在Ubuntu鞋真、CentOS和Mac OS X上構(gòu)建并使用它崇堰。osquery性能極高,內(nèi)存占用小涩咖,支持用戶在整個(gè)基礎(chǔ)設(shè)施上執(zhí)行查詢海诲。
- GitHub主頁(yè):https://github.com/facebook/flow
Flow是Facebook出品的一個(gè)JavaScript代碼的靜態(tài)類型檢查工具,該工具采用開放源碼的OCaml(Objective Caml)語(yǔ)言開發(fā),檩互。Flow能夠幫助開發(fā)人員查找出JavaScript代碼中的類型錯(cuò)誤特幔,從而提高開發(fā)效率和代碼質(zhì)量。Flow已經(jīng)能夠捕獲JavaScript代碼中的常見問題闸昨,如靜態(tài)類型轉(zhuǎn)換不匹配蚯斯、空指針引用等問題。同時(shí)饵较,F(xiàn)low還為JavaScript新增了類型語(yǔ)法拍嵌,如類型別名。
- GitHub主頁(yè):https://github.com/facebook/flux
Facebook認(rèn)為MVC無(wú)法滿足他們的擴(kuò)展需求循诉,因此他們決定使用另一種模式:Flux横辆。由于Facebook非常巨大的代碼庫(kù)和龐大的組織,所以MVC真的很快就變得非常復(fù)雜茄猫,于是他們得出結(jié)論狈蚤,認(rèn)為MVC不適合于大規(guī)模應(yīng)用。
每次Facebook工程師努力增加一項(xiàng)新特性時(shí)划纽,系統(tǒng)的復(fù)雜性成級(jí)數(shù)增長(zhǎng)炫惩,代碼變得“脆弱和不可預(yù)測(cè)”。對(duì)于剛接觸某個(gè)代碼庫(kù)的開發(fā)人員來說阿浓,這正成為一個(gè)嚴(yán)重的問題。Flux是一個(gè)Facebook開發(fā)的蹋绽、利用單向數(shù)據(jù)流實(shí)現(xiàn)的應(yīng)用架構(gòu)芭毙,用于 React筋蓖。Flux應(yīng)用有三個(gè)主要的部分組成:調(diào)度程序、存儲(chǔ)和視圖(React 組件)退敦。
- GitHub主頁(yè):https://github.com/facebook/stetho
Stetho是一個(gè)Android應(yīng)用的調(diào)試工具粘咖。當(dāng)Android應(yīng)用集成Stetho時(shí),開發(fā)者可以通過訪問Chrome侈百,在Chrome Developer Tools中查看應(yīng)用布局瓮下、網(wǎng)絡(luò)請(qǐng)求、sqlite钝域、preference等等讽坏,可視化一切應(yīng)用操作(更重要的是不用root)。開發(fā)者也可通過它的dumpapp工具提供的命令行接口來訪問應(yīng)用內(nèi)部例证。
- GitHub主頁(yè):https://github.com/twitter/typeahead.js
Typeahead.js是Twitter的一個(gè)jQuery插件路呜,支持遠(yuǎn)程和本地的數(shù)據(jù)集。比較有特色的地方在于织咧,你可以將數(shù)據(jù)集使用本地存儲(chǔ)(local storage)來保存在本地胀葱,有效的提高用戶體驗(yàn)。同時(shí)也擁有很多遠(yuǎn)程數(shù)據(jù)集的處理選項(xiàng)笙蒙,例如請(qǐng)求頻率抵屿,最大的并發(fā)請(qǐng)求數(shù),等等捅位。它的主要特性有:
支持?jǐn)?shù)據(jù)本地保存轧葛,客戶端加載,優(yōu)化加載速度绿渣;
支持多語(yǔ)言朝群,并且支持阿拉伯文;
支持Hogan.js模板引擎整合中符;
支持多數(shù)據(jù)集拼裝姜胖;
支持本地和遠(yuǎn)程的數(shù)據(jù)集
- GitHub主頁(yè):https://github.com/twitter/twemoji
Twemoji是Twitter于2014年開源的完整的Emoji表情圖片,Twemoji包含872個(gè)表情淀散,兼容最新的Unicode 7.0右莱。Emoji,來自日本的小巧符號(hào)档插,通過圖像表達(dá)感情慢蜓,已經(jīng)征服了移動(dòng)互聯(lián)網(wǎng)的信息世界。現(xiàn)在郭膛,你可以在虛擬世界中隨處使用它們晨抡。開發(fā)者可以去GitHub下載完整的表情庫(kù),并把這些表情加入到自己的應(yīng)用或網(wǎng)頁(yè)中。
- GitHub主頁(yè):http://twitter.github.com/hogan.js
Hogan.js是Twitter團(tuán)隊(duì)所制作的一個(gè)針對(duì)mustache模板的語(yǔ)法解析器耘柱。Hogan.js不依賴其他任何庫(kù)或框架如捅,同時(shí)保證了高效率的模板解析,而其體積卻僅有2.5K调煎。用它作為你的一部分資產(chǎn)打包編譯模板提前或?qū)⑺ㄔ谀愕臑g覽器來處理動(dòng)態(tài)模板镜遣。
- GitHub主頁(yè):https://github.com/twitter/finagle
Finagle是一個(gè)允許開發(fā)者使用Java、Scala或其他JVM語(yǔ)言來構(gòu)建異步RPC服務(wù)器和客戶端的庫(kù)士袄,主要用于Twitter的后端服務(wù)悲关。Finagle是Twitter基于Netty開發(fā)的支持容錯(cuò)的、協(xié)議無(wú)關(guān)的RPC框架娄柳,該框架支撐了Twitter的核心服務(wù)寓辱。
Twitter面向服務(wù)的架構(gòu)是由一個(gè)龐大的Ruby on Rails應(yīng)用轉(zhuǎn)化而來的。為了適應(yīng)這種架構(gòu)的變化西土,需要有一個(gè)高性能的讶舰、支持容錯(cuò)的、協(xié)議無(wú)關(guān)且異步的RPC框架需了。在面向服務(wù)的架構(gòu)之中跳昼,服務(wù)會(huì)將大多數(shù)的時(shí)間花費(fèi)在等待上游服務(wù)的響應(yīng)上,因此使用異步的庫(kù)能夠讓服務(wù)并發(fā)地處理請(qǐng)求肋乍,從而充分發(fā)揮硬件的潛能鹅颊。Finagle構(gòu)建在Netty之上,并不是直接在原生NIO之上構(gòu)建的墓造,這是因?yàn)镹etty已經(jīng)解決了許多Twitter所遇到的問題并提供了干凈整潔的API堪伍。\
- GitHub主頁(yè):https://github.com/twitter/diffy
Diffy是一個(gè)開源的自動(dòng)化測(cè)試工具,它能夠自動(dòng)檢測(cè)基于Apache Thrift或者基于HTTP的服務(wù)觅闽。使用Diffy帝雇,只需要進(jìn)行簡(jiǎn)單的配置,之后不需要再編寫測(cè)試代碼蛉拙。
Diffy主要基于穩(wěn)定版本和它的副本的輸出尸闸,對(duì)候選版本的輸出進(jìn)行比較,以檢查候選版本是否正確孕锄。因此吮廉,Diffy首先假設(shè)候選版本應(yīng)該和穩(wěn)定版本有“相似”的輸出。即不論候選版本和穩(wěn)定版本系統(tǒng)模塊是否相同畸肆,他們的最終輸出應(yīng)該是“相似”的宦芦。這里一直使用“相似”,而不是使用相同轴脐,是因?yàn)橄嗤?qǐng)求可能會(huì)有一些Diffy不需要關(guān)心的干擾调卑,比如:
響應(yīng)中包含服務(wù)器生成的時(shí)間戳抡砂;
代碼中使用了隨機(jī)數(shù);
系統(tǒng)服務(wù)間有條件競(jìng)爭(zhēng)令野。
- GitHub主頁(yè):https://github.com/twitter/scalding
Scalding是一個(gè)Scala庫(kù)舀患,簡(jiǎn)化了Hadoop MapReduce作業(yè)開發(fā),基于Cascading構(gòu)建气破。Scalding跟Pig類似,但提供更緊密的Scala集成餐抢。Scalding是用于Cascading的Scala API现使。Cascading是一個(gè)構(gòu)建于Hadoop上的API,用來創(chuàng)建復(fù)雜和容錯(cuò)數(shù)據(jù)處理工作流旷痕,它抽象了集群拓?fù)浣Y(jié)構(gòu)和配置碳锈,允許開發(fā)者快速開發(fā)復(fù)雜分布式的應(yīng)用,而不用考慮背后的MapReduce欺抗。
- GitHub主頁(yè):https://github.com/twitter/heron
Heron的基本原理和方法:實(shí)時(shí)流系統(tǒng)是在大規(guī)模數(shù)據(jù)分析的基礎(chǔ)上實(shí)現(xiàn)系統(tǒng)性的分析售碳。另外,它還需要:每分鐘處理數(shù)十億事件的能力绞呈、有秒級(jí)延遲贸人,和行為可預(yù)見;在故障時(shí)保證數(shù)據(jù)的準(zhǔn)確性佃声,在達(dá)到流量峰值時(shí)是彈性的艺智,并且易于調(diào)試和在共享的基礎(chǔ)設(shè)施上實(shí)現(xiàn)簡(jiǎn)單部署。
- GitHub主頁(yè):https://github.com/twitter/secureheaders
SecureHeaders是Twitter送給Web開發(fā)者的一份大禮圾亏,作為一款Web安全開發(fā)工具十拣,Secureheaders能夠自動(dòng)實(shí)施安全相關(guān)的header規(guī)則,包括內(nèi)容安全政策(CSP)志鹃,防止XSS夭问、HSTS等攻擊,防止火綿羊(Firesheep)攻擊以及XFO點(diǎn)擊劫持等曹铃。
- GitHub主頁(yè):https://github.com/twitter/twemproxy
Twemproxy是一個(gè)快速的單線程代理程序缰趋,支持Memcached ASCII協(xié)議和更新的Redis協(xié)議。它全部用C寫成铛只,使用Apache 2.0 License授權(quán)埠胖。Twemproxy的強(qiáng)大之處在于可以通過配置的方式讓它禁用掉失敗的結(jié)點(diǎn),同時(shí)還能在一段時(shí)間后進(jìn)行重試淳玩,抑或使用指定的鍵->服務(wù)器映射直撤。這意味著在將Redis用作數(shù)據(jù)存儲(chǔ)時(shí),它可以對(duì)Redis數(shù)據(jù)集進(jìn)行分片(禁用掉結(jié)點(diǎn)驅(qū)逐)蜕着;在將Redis用作緩存時(shí)谋竖,它可以啟用結(jié)點(diǎn)驅(qū)逐以實(shí)現(xiàn)簡(jiǎn)單的高可用性红柱。它的特性是:
- 通過代理的方式減少緩存服務(wù)器的連接數(shù);
-自動(dòng)在多臺(tái)緩存服務(wù)器間共享數(shù)據(jù)蓖乘;
-通過不同的策略與散列函數(shù)支持一致性散列锤悄;
-通過配置的方式禁用失敗的結(jié)點(diǎn);
-運(yùn)行在多個(gè)實(shí)例上嘉抒,客戶端可以連接到首個(gè)可用的代理服務(wù)器零聚;
-支持請(qǐng)求的流式與批處理,因而能夠降低來回的消耗些侍;
-速度快隶症;
-輕量級(jí)。
Microsoft
- GitHub主頁(yè):https://github.com/Microsoft/vscode
Visual Studio Code是微軟于2015年正式發(fā)布的項(xiàng)目岗宣,可以運(yùn)行在Mac OS X蚂会、Windows和Linux之上,面向Web和云應(yīng)用的一款跨平臺(tái)源代碼編輯器耗式。
- GitHub主頁(yè):https://github.com/Microsoft/TypeScript/
TypeScript是JavaScript強(qiáng)類型的超集胁住,可以編譯成純JavaScript。由微軟開發(fā)的自由和開源的編程語(yǔ)言刊咳,可以運(yùn)行在各類瀏覽器和操作系統(tǒng)之上彪见。
- GitHub地址:https://github.com/Microsoft/CNTK
CNTK全稱為The Microsoft Cognitive Toolkit, 將神經(jīng)網(wǎng)絡(luò)描述為計(jì)算機(jī)可處理的有向圖,有向圖的葉節(jié)點(diǎn)表示輸入值或網(wǎng)絡(luò)參數(shù)芦缰,其他節(jié)點(diǎn)表示輸入對(duì)應(yīng)的矩陣運(yùn)算企巢。CNTK便于實(shí)現(xiàn)并且也結(jié)合了很多流行計(jì)算模型如前饋DNN,卷積網(wǎng)(CNN)和復(fù)現(xiàn)網(wǎng)絡(luò)(RNN / LSTM)让蕾。它可以跨多個(gè)GPU和服務(wù)器實(shí)現(xiàn)隨機(jī)梯度下降(SGD浪规,誤差反向傳播)學(xué)習(xí)與自動(dòng)微分和并行化。
可以在Python或者C++語(yǔ)言中如同庫(kù)版應(yīng)用探孝,也可以使用其自有的描述語(yǔ)言BrainScript單機(jī)化使用笋婿。CNTK可適用于64位的Linux和Window,于2015年4月開源顿颅。
- GitHub主頁(yè):https://github.com/Microsoft/dotnet/network
.NET是微軟研發(fā)的XML Web services平臺(tái)缸濒,此框架支持多種語(yǔ)言(如C#、F#粱腻、VB.Net庇配、C++、Python等)的開發(fā)绍些。.NET框架歷經(jīng)亟待捞慌,最終于2014年開源。
C#通常被認(rèn)為是微軟專屬柬批,是.NET框架上最常用的編程語(yǔ)言之一啸澡, 其著名競(jìng)爭(zhēng)對(duì)手是Java袖订。
一個(gè)跨平臺(tái)(Windows、Linux和macOS)自動(dòng)化和配置工具/框架嗅虏,可與現(xiàn)有工具完美配合洛姑,并優(yōu)化用于處理結(jié)構(gòu)化數(shù)據(jù)(例如JSON,CSV皮服,XML等)楞艾、REST API 和對(duì)象模型。 它包括命令行shell冰更,相關(guān)的腳本語(yǔ)言和用于處理cmdlet的框架产徊。
GitHub地址:https://github.com/MSOpenTech/redis
WinObjc:Windows下的Objective-C
GitHub地址:https://github.com/Microsoft/WinObjC
GitHub地址:https://github.com/Microsoft/api-guidelines
為Visual Studio提供了一個(gè)Objective-C開發(fā)環(huán)境并支持iOS API。通過重新使用Objective-C代碼和iOS API蜀细,配以Windows自有Cortana(中文名:微軟小娜,微軟發(fā)布的全球第一款個(gè)人智能助理)和通知等功能戈盈,用戶可以創(chuàng)建通用Windows平臺(tái)(UWP)應(yīng)用程序并運(yùn)行在Windows設(shè)備上奠衔。
- GitHub地址:https://github.com/aspnet/Mvc
旨在TDD友好,用于創(chuàng)建符合最新Web標(biāo)準(zhǔn)的復(fù)雜應(yīng)用程序塘娶、構(gòu)建動(dòng)態(tài)網(wǎng)站归斤,可以在IIS中托管或自我托管。
微軟在Build 2016大會(huì)上宣布了一條振奮人心的消息刁岸,大家驚呼Ubuntu on Windows脏里。Bash on Windows 為開發(fā)者們提供了Bash shell、Linux類似環(huán)境虹曙,在不需要Linux虛擬機(jī)的情況下迫横,大部分的Linux命令行工具基本上可以不經(jīng)修改地運(yùn)行在Windows上。
微軟支持開發(fā)者們將各種開源軟件工具和技術(shù)帶入Azure酝碳。Azure 應(yīng)用市場(chǎng)支持很多Linux 分發(fā)矾踱,包括 Ubuntu、Debian 和 SUSE疏哗;也支持借助支持 Node.js呛讲、PHP、Python 和 Java 的 Azure 應(yīng)用服務(wù)返奉,生成 Web 和移動(dòng)應(yīng)用贝搁。