真香!Facebook官方的开源 C++11 组件库

开发 架构
今天,猿妹要和大家推荐一个Facebook开源的C++11 组件库——Folly,Folly包含Facebook 广泛使用的各种核心库组件。

今天,猿妹要和大家推荐一个Facebook开源的C++11 组件库——Folly,Folly包含Facebook 广泛使用的各种核心库组件。

Folly是Facebook open source library的缩写,提供了类似 Boost 和 std 库的功能。包括散列、字符串、向量、内存分配、位处理等,满足大规模高性能的需求。

项目地址:https://github.com/facebook/folly

[[405227]]

逻辑设计

Folly 是一组相对独立的组件,有的简单到几个符号。对内部依赖没有限制,这意味着给定的 folly 模块可以使用任何其他 folly 组件。

所有符号都在顶级命名空间中定义folly,当然宏除外。宏名称为 ALL_UPPERCASE 并且应以FOLLY_. 命名空间folly定义了其他内部命名空间,例如internal或detail。用户代码不应依赖于这些命名空间中的符号。

Folly 也有一个experimental目录。这一名称主要意味着我们认为 API 可能会随着时间的推移发生重大变化。通常,此代码仍在大量使用并且经过良好测试。

Folly安装下载

folly 支持 gcc (5.1+)、clang 或 MSVC。它支持在 Linux(x86-32、x86-64 和 ARM)、iOS、macOS 和 Windows (x86-64) 上运行。你可以使用以下命令下载安装:

  1. wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz && \ 
  2. tar zxf release-1.8.0.tar.gz && \ 
  3. rm -f release-1.8.0.tar.gz && \ 
  4. cd googletest-release-1.8.0 && \ 
  5. cmake . && \ 
  6. make && \ 
  7. make install 

构建测试

默认情况下,构建测试作为CMake all目标的一部分是禁用的。要构建测试,请在配置时将-DBUILD_TESTS=ON指定为CMake。

Ubuntu 16.04 LTS

需要以下软件包(随意剪切和粘贴下面的 apt-get 命令):

  1. sudo apt-get install \ 
  2.     g++ \ 
  3.     cmake \ 
  4.     libboost-all-dev \ 
  5.     libevent-dev \ 
  6.     libdouble-conversion-dev \ 
  7.     libgoogle-glog-dev \ 
  8.     libgflags-dev \ 
  9.     libiberty-dev \ 
  10.     liblz4-dev \ 
  11.     liblzma-dev \ 
  12.     libsnappy-dev \ 
  13.     make \ 
  14.     zlib1g-dev \ 
  15.     binutils-dev \ 
  16.     libjemalloc-dev \ 
  17.     libssl-dev \ 
  18.     pkg-config \ 
  19.     libunwind-dev 

Folly 依赖需要从源代码安装的fmt。以下命令将下载、编译和安装 fmt。

  1. git clone https://github.com/fmtlib/fmt.git && cd fmt 
  2.  
  3. mkdir _build && cd _build 
  4. cmake .. 
  5.  
  6. make -j$(nproc) 
  7. sudo make install 

如果需要高级调试功能,请使用:

  1. sudo apt-get install \ 
  2.     libunwind8-dev \ 
  3.     libelf-dev \ 
  4.     libdwarf-dev 

在 folly 目录(例如 checkout 根目录或存档解包根目录)中,运行:

  1. mkdir _build && cd _build 
  2.   cmake .. 
  3.   make -j $(nproc) 
  4.   make install # with either sudo or DESTDIR as necessary 

目前,Folly已经在Github上标星17.6K,累计分支4K(Github地址:https://github.com/facebook/folly)阅读Folly的代码对C++程序员成长也有很大帮助,希望这个项目你会喜欢。

责任编辑:赵宁宁 来源: 开源最前线
相关推荐

2012-06-05 09:12:02

FacebookFolly

2020-06-01 21:07:33

C11C++11内存

2013-12-23 09:48:43

C++锁定模式

2013-09-25 14:20:46

2024-02-21 23:43:11

C++11C++开发

2012-06-05 09:39:16

Facebook

2013-05-30 00:49:36

C++11C++条件变量

2013-07-31 11:09:05

C++11

2020-12-09 10:55:25

ArrayvectorLinux

2012-06-04 13:25:34

Facebook开源

2013-11-29 09:51:26

C++双重检查锁定

2011-10-13 10:21:01

C++

2023-09-22 22:27:54

autoC++11

2020-09-23 16:31:38

C++C++11启动线程

2012-12-25 10:52:23

IBMdW

2013-12-11 10:00:14

C++新特性C

2011-08-19 09:41:56

C++

2014-07-30 14:37:00

FacebookiOS开源库

2024-01-06 09:58:22

2013-10-15 09:48:03

C++Lambda函数式编程
点赞
收藏

51CTO技术栈公众号