腾讯十大最受欢迎的开源项目!
MMKV 原理
内存准备
通过 mmap 内存映射文件,提供一段可供随时写入的内存块,App 只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash 导致数据丢失。数据组织
数据序列化方面我们选用 protobuf 协议,pb 在性能和空间占用上都有不错的表现。写入优化
考虑到主要使用场景是频繁地进行写入更新,我们需要有增量更新的能力。我们考虑将增量 kv 对象序列化后,append 到内存末尾。空间增长
使用 append 实现增量更新带来了一个新的问题,就是不断 append 的话,文件大小会增长得不可控。我们需要在性能和空间上做个折中。
项目地址
开源地址:https://github.com/Tencent/MMKV
APIJSON
APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。
为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的万能 API。
适合中小型前后端分离的项目,尤其是 BaaS、Serverless、互联网创业项目和企业自用项目。

对于前端
不用再向后端催接口、求文档
数据和结构完全定制,要啥有啥
看请求知结果,所求即所得
可一次获取任何数据、任何结构
能去除重复数据,节省流量提高速度
对于后端
提供通用接口,大部分 API 不用再写
自动生成文档,不用再编写和维护
自动校验权限、自动管理版本、自动防 SQL 注入
开放 API 无需划分版本,始终保持兼容
支持增删改查、模糊搜索、正则匹配、远程函数等
项目地址
github地址:https://github.com/Tencent/APIJSON
跨平台跨业务的终端基础组件
comm:可以独立使用的公共库,包括 socket、线程、消息队列、协程等; xlog:高可靠性高性能的运行期日志组件; SDT:网络诊断组件; STN:信令分发网络模块,也是 Mars 最主要的部分。
项目地址
开源地址:https://github.com/Tencent/Mars
高性能神经网络前向计算框架
ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如 QQ,Qzone,微信,天天P图等。
功能概述
支持卷积神经网络,支持多输入和多分支结构,可计算部分分支
无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架
纯 C++ 实现,跨平台,支持 android ios 等
ARM NEON 汇编级良心优化,计算速度极快
精细的内存管理和数据结构设计,内存占用极低
支持多核并行计算加速,ARM big.LITTLE cpu 调度优化
支持基于全新低消耗的 vulkan api GPU 加速
整体库体积小于 700K,并可轻松精简到小于 300K
项目地址
Android热补丁解决方案
gradle编译插件: tinker-patch-gradle-plugin 核心sdk库: tinker-android-lib 非gradle编译用户的命令行版本: tinker-patch-cli.jar
项目地址
c/c++协程库
libco是微信后台大规模使用的c/c++协程库,2013年至今稳定运行在微信后台的数万台机器上。
libco通过仅有的几个函数接口 co_create/co_resume/co_yield 再配合 co_poll,可以支持同步或者异步的写法,如线程库一样轻松。同时库里面提供了socket族函数的hook,使得后台逻辑服务几乎不用修改逻辑代码就可以完成异步化改造。
libco的特性
无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升; 支持CGI框架,轻松构建web服务(New); 支持gethostbyname、mysqlclient、ssl等常用第三库(New); 可选的共享栈模式,单机轻松接入千万连接(New); 完善简洁的协程编程接口 类pthread接口设计,通过co_create、co_resume等简单清晰接口即可完成协程的创建与恢复; __thread的协程私有变量、协程间通信的协程信号量co_signal (New); 语言级别的lambda实现,结合协程原地编写并执行后台异步任务 (New); 基于epoll/kqueue实现的小而轻的网络框架,基于时间轮盘实现的高性能定时器;
项目地址
开源地址:https://github.com/Tencent/libco
Android插件框架
零反射无Hack实现插件技术:从理论上就已经确定无需对任何系统做兼容开发,更无任何隐藏API调用,和Google限制非公开SDK接口访问的策略完全不冲突。
项目地址
github地址:https://github.com/Tencent/Shadow
新生的跨端开发框架
Hippy 是一个新生的跨端开发框架,目标是使开发者可以只写一套代码就直接运行于三个平台(iOS、Android 和 Web)。Hippy 的设计是面向传统 Web 开发者的,特别是之前有过 React Native 和 Vue 的开发者用起来会更为顺手,Hippy 致力于让前端开发跨端 App 更加容易。
到目前为止,腾讯内已经有了27款流行 App 在使用 Hippy 框架,包括手机QQ、手机QQ浏览器、腾讯视频App,QQ音乐App等,每日触达数亿用户。
特征
为传统 Web 前端设计,官方支持
React和Vue两种主流前端框架。不同的平台保持了相同的接口。
通过 JS 引擎 binding 模式实现的前终端通讯,具备超强性能。
提供了高性能的可复用列表。
皆可平滑迁移到 Web 浏览器。
完整支持 Flex 的布局引擎。
项目地址
github地址:https://github.com/Tencent/Hippy
小程序支持组件化开发的框架
特性:
类 Vue 开发风格 支持自定义组件开发 支持引入 NPM 包 支持 Promise 支持 ES2015+ 特性,如 Async Functions 支持多种编译器,Less/Sass/Stylus/PostCSS、Babel/Typescript、Pug 支持多种插件处理,文件压缩,图片压缩,内容替换等 支持 Sourcemap,ESLint 等 小程序细节优化,如请求列队,事件优化等
项目地址
物联网领域开发的实时操作系统
TencentOS tiny整体架构

TencentOS tiny 主体架构图,从下到上主要包括:
项目地址
推荐阅读:
