大數據利器2018版

類別

名稱 (可重點關注加粗部分)

官網

備註

查詢引擎

Phoenix

https://phoenix.apache.org/

Salesforce公司出品,Apache HBase之上的一個SQL中間層,完全使用Java編寫

Presto

http://prestodb.io/

Facebook開源的分佈式SQL查詢引擎,適用於交互式分析查詢,數據量支持GB到PB字節

Shark

http://shark.cs.berkeley.edu/

Spark上的SQL執行引擎,已演化成Spark-SQL和Hive on Spark

Pig

http://pig.apache.org/

基於Hadoop MapReduce的腳本語言

Cloudera Impala

http://www.cloudera.com/content/cloudera/en/products-and-services/cdh/impala.html

參照Google Dremel實現,能運行在HDFS或HBase上,使用C++開發。Cloudera聲稱,基於SQL的Impala數據庫是面向Apache Hadoop的領先的開源分析數據庫。

Apache Drill

https://drill.apache.org/

參照Google Dremel實現,無主節點的實時的分佈式查詢引擎。兼容ANSI SQL(國際標準SQL語言)語法作爲接口,支持對本地文件,HDFS,HIVE, HBASE,MongeDB作爲存儲的數據查詢,文件格式支持Parquet、CSV、 TSV以及JSON這種無模式無關(schema-free)的數據。

Apache Tajo

http://tajo.apache.org/

一個運行在YARN上支持SQL的分佈式數據倉庫

Kylin

http://kylin.apache.org/ http://kylin.apache.org/cn/

一個開源的分佈式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由eBay Inc. 開發並貢獻至開源社區。它能在亞秒內查詢巨大的Hive表。

Hive

http://hive.apache.org/

基於Hadoop MapReduce的SQL查詢引擎

Calcite

https://calcite.apache.org/

起源於Hive,源名optiq,2014年5月獨立出來後更名爲Calcite,一個動態數據管理框架。它將數據存儲和數據處理分離出去,專注於成爲配置應用與一個或者多個數據存儲位置以及數據處理引擎的中間件。獨立於存儲與執行的SQL解析、優化引擎,廣泛應用於各種離線、搜索、實時查詢引擎,如Drill、Hive、Kylin、Solr、flink、Samza等。

流式計算

Facebook Puma

實時數據流分析

Twitter Rainbird

分佈式實時統計系統,如網站的點擊統計

Yahoo S4

http://incubator.apache.org/s4/

Java開發的一個通用的、分佈式的、可擴展的、分區容錯的、可插拔的無主架構的流式系統

jStrom

https://github.com/alibaba/jstorm

阿里開源的經過優化的Java版Storm

Flink

https://flink.apache.org/

到2018年,Flink已經很成熟了,生態也逐漸豐富,流式(實時)計算和離線計算通吃

Twitter Storm

http://storm.incubator.apache.org/

使用Java和Clojure實現

迭代計算

Apache Hama

https://hama.apache.org/

建立在Hadoop上基於BSP(Bulk Synchronous Parallel)的計算框架,模仿了Google的Pregel。

Apache Giraph

https://giraph.apache.org/

建立在Hadoop上的可伸縮的分佈式迭代圖處理系統,靈感來自BSP(bulk synchronous parallel)和Google的Pregel

HaLoop

https://code.google.com/p/haloop/

迭代的MapReduce

Apache Tez

https://tez.apache.org/

支持DAG作業的開源計算框架,它可以將多個有依賴的作業轉換爲一個作業從而大幅提升DAG作業的性能。

Twister

http://www.iterativemapreduce.org/

迭代的MapReduce

圖形數據庫

FlockDB

https://github.com/twitter-archive/flockdb

推特開發的FlockDB是一種非常快、擴展性非常好的圖形數據庫,擅長存儲社交網絡數據,最近一次更新時間爲2016年

Neo4j

https://neo4j.com/

基於Java的高性能的NOSQL圖形數據庫,它將結構化數據存儲在網絡上而不是表中

離線計算

Hadoop MapReduce

http://hadoop.apache.org/

經典的大數據批處理系統

Berkeley Spark

http://spark.apache.org/ http://shark.cs.berkeley.edu/

使用Scala語言實現,和MapReduce有較大的競爭關係,性能強於MapReduce,也可做離線計算,但是秒級的,不如Flink毫秒級的

Flink

https://flink.apache.org/

和Spark類似的,同時適應於實時計算和離線計算

Apache Ignite

http://ignite.apache.org/

內存數據組織框架是一個高性能、集成化和分佈式的內存計算和事務平臺

DataTorrent

http://www.datatorrent.com/

基於Hadoop2.X構建的實時流式處理和分析平臺,每秒可以處理超過10億個實時事件

嵌入式DB

SQLite

https://www.sqlite.org/

經典的嵌入式SQL庫

Firebird

http://www.firebirdsql.org/

從Interbase派生出來的,支持SQL,支持事務

對象存儲

Ozone

https://hadoop.apache.org/ozone/

2018新增的Hadoop新成員

鍵值存儲

LevelDB

https://code.google.com/p/leveldb/

Google開源的高效KV編程庫,注意它只是個庫

RocksDB

http://rocksdb.org/

Facebook開源的可嵌入式的支持持久化的key-value存儲系統,基於Google的LevelDB,但提高了擴展性可以運行在多核處理器上

HyperDex

http://hyperdex.org/

下一代KV存儲系統,支持strings、integers、floats、lists、maps和sets等豐富的數據類型

TokyoCabinet

http://fallabs.com/tokyocabinet/

日本人Mikio Hirabayashi(平林幹雄)開發的一款DBM數據庫,注意它只是個庫(大名鼎鼎的DBM數據庫qdbm就是Mikio Hirabayashi開發的),讀寫非常快

Voldemort

http://www.project-voldemort.com/voldemort/

一個分佈式鍵值存儲系統,是Amazon Dynamo的一個開源克隆,LinkedIn開源

Amazon Dynamo

https://github.com/dynamo/dynamo

亞馬遜的KV模式的存儲平臺,無主架構

Tair

http://tair.taobao.org/

淘寶出品的高性能、分佈式、可擴展、高可靠的KV結構存儲系統,專爲小文件優化,並提供簡單易用的接口(類似Map),Tair支持Java和C版本的客戶端

TiKV

https://github.com/tikv/tikv

Rust 語言編寫的分佈式鍵值系統(KVS),它採用Raft協議保證數據的強一致性,同時使用MVCC+2PC的方式實現了分佈式事務的支持

Apache Accumulo

https://accumulo.apache.org/

一個可靠的、可伸縮的、高性能的排序分佈式的KV存儲系統,參照Google Bigtable而設計,建立在Hadoop、Thrift和Zookeeper之上。

Anna

https://github.com/ucbrise/anna

伯克利RISE實驗室(RISE實驗室的前身是赫赫有名的伯克利AMP實驗室,開發了著名的Spark、Mesos、Tachyon等)推出的鍵值存儲數據庫,也是一個具備驚人的存取速度、超強的伸縮性和優秀的一致性的KVS

Redis

http://redis.io/

使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、單機版KV數據庫。從2010年3月15日起,Redis的開發工作由VMware主持

表格存儲

OceanBase

https://github.com/alibaba/oceanbase

支持海量數據的高性能分佈式數據庫系統,實現了數千億條記錄、數百TB數據上的跨行跨表事務

Amazon SimpleDB

http://aws.amazon.com/cn/simpledb/

一個可大規模伸縮、用 Erlang 編寫的高可用數據存儲

Vertica

http://www.vertica.com/

惠普2011收購Vertica,Vertica是傳統的關係型數據庫,基於列存儲,同時支持MPP,使用標準的SQL查詢,可以和Hadoop/MapReduce進行集成

Cassandra

http://cassandra.apache.org/

Hadoop成員,Facebook於2008將Cassandra開源,基於O(1)DHT的完全P2P架構

HyperTable

http://hypertable.org/

搜索引擎公司Zvents針對Bigtable的C++開源實現

FoundationDB

https://foundationdb.com/

支持ACID事務處理的NoSQL數據庫,提供非常好的性能、數據一致性和操作彈性

PaxosStore

https://github.com/Tencent/paxosstore

微信出品,參照Google MegaStore實現的分佈式存儲系統,廣泛支撐微信在線應用,峯值過億TPS,運行在數千臺服務器上。

MemSQL

http://www.memsql.com/

前Facebook工程師創辦的,號稱世界上最快的分佈式關係型數據庫,兼容MySQL但快30倍,能實現每秒150萬次事務,原理是僅用內存並將SQL預編譯爲C++。

ScyllaDB

https://www.scylladb.com/ http://www.scylladb.cn/

由大神KVM之父Avi Kivity創建的NoSQL數據庫,世界級性能領先的NoSQL列存儲數據庫,C++改寫的Cassandra,完全兼容Apache Cassandra

HBase

http://hbase.apache.org/

Bigtable在Hadoop中的實現,最初是Powerset公司爲了處理自然語言搜索產生的海量數據而開展的項目

時間序列數據庫 (TSDB)

openTSDB

http://opentsdb.net/

基於HBase的分佈式的、可伸縮的時間序列數據庫,和Grafana結合使用

KairosDB

https://kairosdb.github.io/

基於Cassandra的分佈式的、可伸縮的時間序列數據庫

Prometheus

https://prometheus.io/

開源的服務監控系統和時序列數據庫,由社交音樂平臺SoundCloud在2012年開發,常和Grafana結合使用

Druid

http://druid.io/

注意不是阿里的Druid,開源的、快速和近實時的海量數據OLAP系統,誕生於Metamarkets,後核心人員創立了IMPLY公司開發Druid及相關產品,按時間來進行分區(Segment),並且是面向列的存儲

RRDtool

https://oss.oetiker.ch/rrdtool/

輪詢式數據庫,適合時間序列的數據

Graphite

https://graphiteapp.org/

時序數據庫,作用是存儲和聚合監控數據並繪製圖標,不負責數據的收集

Pinot

https://github.com/linkedin/pinot

來自 Linkedin的開源的實時、分佈式OLAP數據存儲方案

InfluxDB

https://github.com/influxdata/influxdb https://www.influxdata.com/

開源的時序數據庫,使用GO語言開發,特別適合用於處理和分析資源監控數據這種時序相關數據,但集羣版本收費,和Grafana結合使用

文件存儲

CouchDB

http://couchdb.apache.org/

面向文檔的數據存儲,號稱是“一款完全擁抱互聯網的數據庫”,它將數據存儲在JSON文檔中,這種文檔可以通過Web瀏覽器來查詢,並且用JavaScript來處理。它易於使用,在分佈式上網絡上具有高可用性和高擴展性。

MongoDB

https://www.mongodb.org/

C++ 語言編寫的文檔型數據庫

Alluxio

https://www.alluxio.org/

原名Tachyon,2016改名爲Alluxio,高容錯的以內存爲中心的虛擬的分佈式存儲系統,吞吐量要比HDFS高300多倍。加州大學伯克利分校的AMPLab基於Hadoop的核心組件開發出一個更快的版本Tachyon,它從底層重構了Hadoop平臺。

KFS

http://code.google.com/p/kosmosfs/

GFS的C++開源版本

HDFS

http://hadoop.apache.org/

GFS在Hadoop中的實現

資源管理

Twitter Mesos

http://mesos.apache.org/

開源分佈式資源管理框架,它被稱爲是分佈式系統的內核。最初是由加州大學伯克利分校的AMPLab開發的,後在Twitter得到廣泛使用。

Hadoop Yarn

http://hadoop.apache.org/

類似於Mesos

日誌收集系統

Facebook Scribe

https://github.com/facebook/scribe

Facebook開源的日誌收集系統,能夠從各種日誌源上收集日誌,存儲到一箇中央存儲系統(可以是NFS,分佈式文件系統等)上,以便於進行集中統計分析處理,常與Hadoop結合使用,Scribe用於向HDFS中Push日誌

Cloudera Flume

http://flume.apache.org/

Cloudera提供的日誌收集系統,支持對日誌的實時性收集

Logstash

http://www.logstash.net/

日誌管理、分析和傳輸工具,可配合kibana、ElasticSearch組建成日誌查詢系統

Kibana

http://www.elasticsearch.org/overview/kibana/

爲日誌提供友好的Web查詢頁面

消息系統

StormMQ

http://stormmq.com/

基於netty的消息隊列,Java語言開發

RocketMQ

https://rocketmq.apache.org/

阿里開源的類似於Kafka的分佈式消息隊列

ZeroMQ

http://zeromq.org/

很底層的高性能網絡庫

RabbitMQ

https://www.rabbitmq.com/

在AMQP基礎上完整的,可複用的企業消息系統

Apache ActiveMQ

http://activemq.apache.org/

能力強勁的開源消息總線

PhxQueue

https://github.com/Tencent/phxqueue

微信開源的一款基於Paxos協議實現的高可用、高吞吐和高可靠的分佈式隊列,保證At-Least-Once Delivery。在微信內部廣泛支持微信支付、公衆平臺等多個重要業務。

Jafka

https://github.com/adyliu/jafka

Java版本開源的、高性能的跨語言Kafka,最早是由Apache孵化的Kafka(由LinkedIn捐助給Apache)克隆而來

Pulsar

https://pulsar.apache.org/

由雅虎開發並開源的下一代消息系統,Kafka的競品

Apache Kafka

http://kafka.apache.org/

Linkedin於2010年12月份開源的分佈式消息系統,它主要用於處理活躍的流式數據,由Scala寫成

分佈式服務

ZooKeeper

http://zookeeper.apache.org/

分佈式鎖服務,PoxOS算法的實現,對應Google的Chubby

rethinkdb

https://github.com/rethinkdb/rethinkdb

設計用來存儲 JSON 文檔的分佈式數據庫,可通過簡單操作實現多機分佈式存儲。支持表的聯合和分組查詢。 特點: 簡單編程模型 JSON 數據模型和一致性 分佈式聯合查詢、子查詢、聚合查詢和原子更新操作 Hadoop 風格的 map/reduce

Nacos

https://github.com/alibaba/nacos

阿里開源的一個更易於構建雲原生應用的動態服務發現、配置和服務管理平臺

PhxPaxos

https://github.com/tencent-wechat/phxpaxos

微信後臺團隊自主研發的一套基於Paxos協議的多機狀態拷貝類庫。它以庫函數的方式嵌入到開發者的代碼當中, 使得一些單機狀態服務可以擴展到多機器,從而獲得強一致性的多副本以及自動容災的特性。 這個類庫在微信服務裏面經過一系列的工程驗證,並且我們對它進行過大量的惡劣環境下的測試,使其在一致性的保證上更爲健壯。

QJM

http://hadoop.apache.org/

Hadoop內置的JournalNode,用於NameNode元數據容災,存儲NameNode元數據日誌,節點間的數據同步可以考慮

Bookeeper

https://bookkeeper.apache.org/

和JournalNode類似

etcd

https://github.com/coreos/etcd

一個高可用的鍵值存儲系統,主要用於共享配置和服務發現。etcd是由CoreOS開發並維護的,靈感來自於 ZooKeeper 和 Doozer,它使用Go語言編寫,並通過Raft一致性算法處理日誌複製以保證強一致性。

RPC

Apache Avro

http://avro.apache.org/

Hadoop中的RPC

PhxRPC

https://github.com/tencent-wechat/phxrpc

微信後臺團隊推出的一個非常簡潔小巧的基於Protobuf的RPC框架(實現語言爲C++),編譯生成的庫只有450K

sofa-pbrpc

https://github.com/baidu/sofa-pbrpc

百度開源的,基於Protobuf的C++實現的RPC

Dubbo

https://dubbo.incubator.apache.org

阿里開源的RPC,實現語言爲Java

gRPC

http://www.grpc.io/ https://github.com/grpc/grpc

一個高性能、通用的開源RPC框架,其由Google主要面向移動應用開發並基於HTTP/2協議標準而設計,基於ProtoBuf(Protocol Buffers)序列化協議開發,且支持衆多開發語言。

Finagle

https://twitter.github.io/finagle/

Twitter基於Netty開發的支持容錯的、協議無關的RPC框架

Thrift

http://thrift.apache.org/

RPC,支持C++/Java/PHP等衆多語言

集羣管理

Nagios

http://www.nagios.org/

監視系統運行狀態和網絡信息的監視系統

CDAP

https://github.com/caskdata/cdap

CAST DATA APPLICATION PLATFORM,開源的大數據應用統一集平臺,幫助應用開發者和系統管理員基於Hadoop技術棧來構建、測試、部署、管理數據應用程序,由Datasets、Programs、 Services、Tools等組件組成。

Hue

http://gethue.com/

開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來

Ganglia

http://ganglia.sourceforge.net/

UC Berkeley發起的一個開源集羣監視項目,設計用於測量數以千計的節點。

Ranger

https://hortonworks.com/apache/ranger/

一個集中式安全管理框架,它可以對Hadoop生態的組件如Hive、Hbase進行細粒度的數據訪問控制。通過操作Ranger控制檯,管理員可以輕鬆的通過配置策略來控制用戶訪問HDFS文件夾、HDFS文件、數據庫、表、字段權限。這些策略可以爲不同的用戶和組來設置,同時權限可與hadoop無縫對接。

Kafka Manager

https://github.com/yahoo/kafka-manager

Web可視化Kafka管理軟件

osquery

https://osquery.io/

Facebook開源的一個SQL驅動操作系統檢測和分析工具,支持像SQL語句一樣查詢系統的各項指標,可以用於OSX和Linux操作系統,它使得底層操作系統分析和監控性能更加直觀

Apache Ambari

http://ambari.apache.org/

一種基於Web的工具,支持Apache Hadoop集羣的供應、管理和監控。Ambari已支持大多數Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase、Zookeepr、Sqoop和Hcatalog等的集中管理。

基礎設施

SSTable

源於Google,orted String Table

RecordIO

源於Google

Flat Buffers

https://github.com/google/flatbuffers

針對遊戲開發的,高效的跨平臺序列化庫,相比Proto Buffers開銷更小,因爲Flat Buffers沒有解析過程

Protocol Buffers

http://code.google.com/p/protobuf/

Google公司開發的一種數據描述語言,類似於XML能夠將結構化數據序列化,可用於數據存儲、通信協議等方面。它不依賴於語言和平臺並且可擴展性極強。

Consistent Hashing

1997年由麻省理工學院提出,目標是爲了解決因特網中的熱點(Hot spot)問題,初衷和CARP十分類似,基本解決了在P2P環境中最爲關鍵的問題——如何在動態的網絡拓撲中分佈存儲和路由。

Netty

http://netty.io/

JBOSS提供的一個java開源框架,提供異步的、事件驅動的網絡應用程序框架,用以快速開發高性能、高可靠性的網絡服務器和客戶端程序。

Seastar

http://seastar.io/

現代硬件上的高性能C++異步框架,Scylla完全基於Seastar庫,KVM之父Avi Kivity大神創建

Proxygen

https://github.com/facebook/proxygen

Facebook開源的支持SPDY 3.1的HTTP框架

libPhenom

https://github.com/facebook/libphenom

Facebook發佈的一個C語言事件框架,用於構建高性能和高可擴展的系統。支持多線程、提供內存管理和常用數據結構、json處理。

BloomFilter

布隆過濾器,1970年由布隆提出,是一個很長的二進制矢量和一系列隨機映射函數,可以用於檢索一個元素是否在一個集合中,優點是空間效率和查詢時間都遠遠超過一般的算法,缺點是有一定的誤識別率和刪除困難。

搜索引擎

Nutch

https://nutch.apache.org/

開源Java 實現的搜索引擎,誕生Hadoop的地方。

Lucene

http://lucene.apache.org/

一套信息檢索工具包,但並不包含搜索引擎系統,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能。

SolrCloud

基於Solr和Zookeeper的分佈式搜索, Solr4.0 的核心組件之一,主要思想是使用 Zookeeper 作爲集羣的配置信息中心

Solr

https://lucene.apache.org/solr/

Solr是基於Lucene的搜索。

ElasticSearch

http://www.elasticsearch.org/ http://www.elasticsearch.cn/

開源的(Apache2協議),分佈式的,RESTful的,構建在Apache Lucene之上的的搜索引擎。

Sphinx

http://sphinxsearch.com

一個基於SQL的全文檢索引擎,可結合MySQL、PostgreSQL做全文檢索,可提供比數據庫本身更專業的搜索功能,單一索引可達1億條記錄,1000萬條記錄情況下的查詢速度爲0.x秒(毫秒級)。

SenseiDB

http://senseidb.com

Linkin公司開發的一個開源分佈式實時半結構化數據庫,在全文索引的基礎封裝了Browse Query Language (BQL,類似SQL)的查詢語法。

數據挖掘

Mahout

http://mahout.apache.org/

Hadoop成員,目標是建立一個可擴展的機器學習庫

Iaas

OpenStack

https://www.openstack.org/

美國國家航空航天局和Rackspace合作研發的,以Apache許可證授權雲平臺管理的項目,它不是一個軟件。這個項目由幾個主要的組件組合起來完成一些具體的工作,旨在爲公共及私有云的建設與管理提供軟件的開源項目。6個核心項目:Nova(計算,Compute),Swift(對象存儲,Object),Glance(鏡像,Image),Keystone(身份,Identity),Horizon(自助門戶,Dashboard),Quantum & Melange(網絡&地址管理),另外還有若干社區項目,如Rackspace(負載均衡)、Rackspace(關係型數據庫)。

Docker

http://www.docker.io/

應用容器引擎,讓開發者可打包應用及依賴包到一個可移植的容器中,然後發佈到Linux機器上,也可實現虛擬化。

Kubernetes

https://github.com/GoogleCloudPlatform/kubernetes/

由Google開源的,Docker編寫的容器編排引擎,支持自動化部署、大規模可伸縮、應用容器化管理。支持公有云,私有云,混合雲,多重雲。簡稱K8s,是用8代替8個字符“ubernete”而成的縮寫。是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。ETCD是Kubernetes提供默認的存儲系統,保存所有集羣數據。

Imctfy

https://github.com/google/Imctfy/

Google開源的Linux容器

關係數據庫

PhxSQL

https://github.com/tencent-wechat/phxsql

微信開源的基於MySQL的強一致高可用分佈式數據庫

TiDB

https://github.com/pingcap/tidb

TiDB 是 PingCAP 公司受 Google Spanner / F1 論文啓發而設計的開源分佈式 HTAP (Hybrid Transactional and Analytical Processing) 數據庫,目標是爲 OLTP(Online Transactional Processing) 和 OLAP (Online Analytical Processing) 場景提供一站式的解決方案。

機器學習

TensorFlow

https://www.tensorflow.org https://www.tensorflow.org/?hl=zh-cn

最初是由 Google Brain 團隊(隸屬於 Google 的 AI 部門)中的研究人員和工程師開發的,可爲機器學習和深度學習提供強力支持,並且其靈活的數值計算核心廣泛應用於許多其他科學領域。

Sonnect

https://github.com/deepmind/sonnet

基於TensorFlow的神經網絡庫

Facets

https://pair-code.github.io/facets/

谷歌開源機器學習可視化工具

Kubeflow

https://github.com/kubeflow/kubeflow

讓Kubernetes集羣具備機器學習能力,致力於在 Kubernetes 上讓 ML(Machine Learning)堆棧變得簡單、快速、可擴展

OpenFermion

https://github.com/quantumlib/OpenFermion

Google開源量子計算軟件

TonY

https://github.com/linkedin/TonY

LinkedIn開發的在Hadoop上自然運行TensorFlow的框架,核心理念是像MapReduce和Spark一樣,使TensorFlow可以在Hadoop上以可靠、靈活的方式運行

TensorFlow Fold

https://github.com/tensorflow/fold

深度學習動態計算圖工具

微服務

helidon

https://github.com/oracle/helidon

Oracle推出的輕量級Java微服務框架

Lstio

https://istio.io/

谷歌,IBM和Lyft開源大型微服務系統管理工具

協程

libco

https://github.com/Tencent/libco

微信後臺大規模使用的c/c++協程庫,2013年至今穩定運行在微信後臺的數萬臺機器上。無需侵入業務邏輯,把多進程、多線程服務改造成協程服務,併發能力得到百倍提升。支持CGI框架,輕鬆構建web服務。使用hook技術讓鏈接進程序的同步的第三方庫變爲異步調用,大大提升其性能。

libgo

https://github.com/yyzybb537/libgo

使用C++11編寫的協作式調度的stackful協程庫, 同時也是一個強大易用的並行編程庫。提供golang一般功能強大協程,基於corontine編寫代碼,可以以同步的方式編寫簡單的代碼,同時獲得異步的性能。支持海量協程, 創建100萬個協程只需使用4.5GB物理內存。使用hook技術讓鏈接進程序的同步的第三方庫變爲異步調用,大大提升其性能。

libtask

https://swtch.com/libtask/

C實現的協程庫, 通過一兩千行代碼就實現了協程調度、延遲調度以及Channel的功能

state-threads

https://sourceforge.net/projects/state-threads/

一個基於setjmp/longjmp實現的C語言版用戶線程庫或協程庫(user level thread)

Protothreads

http://dunkels.com/adam/pt/

“蠅量級”的協程庫,針對C語言封裝後的宏函數庫,爲C語言模擬了一種無堆棧的輕量線程環境,能夠實現模擬線程的條件阻塞、信號量操作等操作系統中特有的機制,從而使程序實現多線程操作。

編程語言

Kotlin

https://kotlinlang.org/

現代多平臺應用的靜態編程語言,由JetBrains(Java IDE IntelliJ的提供商)開發。可以編譯成Java字節碼,也可以編譯成JavaScript,方便在沒有JVM的設備上運行,爲Android官方支持開發語言。比Java更安全,能夠靜態檢測常見的陷阱,被稱之爲Android世界的Swift。

Julia

https://julialang.org/

集Python、C++和R爲一體,面向科學計算的高性能動態高級程序設計語言,可用於天文圖像分析、自動駕駛汽車、機器人、3D打印、精準醫療、增強現實、基因組學、風險管理等,主要應用於數據可視化、通用計算、數據科學、機器學習、科學領域、並行計算六大領域。

Rockstar

https://github.com/dylanbeattie/rockstar

圖靈完備的能寫出詩歌般代碼的動態編程語言,用它寫下的不僅僅是一行行可執行的代碼,還是一首青春的讚美語——就像是它的名字一樣,搖滾明星。

Rust

https://www.rust-lang.org

由Mozilla研究室主導開發的一門現代系統編程語言,Rust是一種系統編程語言,它有着驚人的運行速度,能夠防止段錯誤,並保證線程安全。

Scala

https://www.scala-lang.org/

典型作品:Kafka,運行在JVM上的多範式的類Java編程語言,集成面向對象編程和函數式編程的各種特性。

Clojure

https://clojure.org/

典型作品:Storm,運行在JVM上的動態函數式編程語言,語法接近於LISP語言,Lisp是一種以表達性和功能強大著稱的編程語言

GO

https://golang.org/

典型作品:Docker、Kubernetes

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章