开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。

腾讯开源了个很多非常有价值的项目,下面我们一起按照Stars(受欢迎程度)来盘点下这些开源项目。

1、微信原生视觉的基础样式库 WeUI    star:21429

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一。

包含button、cell、dialog、 progress、 toast、article、actionsheet、icon等各式元素。

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。

WeUI-Design 是微信官方设计团队设计的一套同微信原生视觉体验一致的基础视觉样式库,目前提供 Sketch 与 PSD 基础样式库源文件。

开发者或设计师可以使用 WeUI-Design 进行微信 Web 开发的原型设计、视觉设计等。

手机扫码预览:

项目地址:

https://github.com/Tencent/weui

官网:

https://weui.io

2、一款让小程序支持组件化开发的框架 WePY   star:16621

WePY (发音: /'wepi/)是一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。

框架的细节优化,Promise,Async Functions的引入都是为了能让开发小程序项目变得更加简单,高效。

特性:

类Vue开发风格

支持自定义组件开发

支持引入NPM包

支持Promise

支持ES2015+特性,如Async Functions

支持多种编译器,Less/Sass/Stylus/PostCSS、Babel/Typescript、Pug

支持多种插件处理,文件压缩,图片压缩,内容替换等

支持 Sourcemap,ESLint等

小程序细节优化,如请求列队,事件优化等

项目地址:

https://github.com/Tencent/wepy

官网:

https://tencent.github.io/wepy/


3、微信官方的Android热补丁解决方案  Tinker    star:13237

微信开源的 Android 热修复框架 Tinker,支持在无需升级APK的前提下更新 dex, library and resources 文件。

Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。

它主要包括以下几个部分:

gradle编译插件: tinker-patch-gradle-plugin

核心sdk库: tinker-android-lib

非gradle编译用户的命令行版本: tinker-patch-cli.jar

项目地址:

https://github.com/Tencent/tinker

4、微信官方的跨平台跨业务的终端基础组件 Mars  star:12071

Mars 是微信官方的跨平台跨业务的终端基础组件,是一个使用 C++ 编写的业务性无关、平台性无关的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP 等客户端。

主要包括以下几个部分:

COMM:基础库,包括socket、线程、消息队列、协程等基础工具;

XLOG:通用日志模块,充分考虑移动终端的特点,提供高性能、高可用、安全性、容错性的日志功能;

SDT:网络诊断模块;

STN:信令传输网络模块(核心模块),负责终端与服务器的小数据信令通道。包含了微信终端在移动网络上的大量优化经验与成果,经历了微信海量用户的考验。

项目地址:

https://github.com/Tencent/mars

5、轻量级的高性能的Hybrid框架 VasSonic     star:9254

VasSonic取名于世嘉动画形象音速小子,是腾讯QQ会员 VAS团队研发的一个轻量级的高性能的Hybrid框架,专注于提升页面首屏加载速度,完美支持静态直出页面和动态直出页面,兼容离线包等方案。

接入VasSonic后首次打开可以在初始化APP的时候并行请求页面资源,并且具备边加载边渲染的能力。非首次打开时,APP可以快速加载上次打开动态缓存在本地的页面资源,然后动态刷新页面。腾讯手机QQ通过VasSonic框架使得页面首屏耗时平均低于1S以下。

项目地址:

https://github.com/Tencent/VasSonic

6、一个轻量、可拓展、针对手机网页的前端开发者调试面板 vConsole     star:8136

vConsole是一个轻量、可拓展、针对手机网页的前端开发者调试面板。

特性:

查看 console 日志

查看网络请求

查看页面 element 结构

查看 Cookies、localStorage 和 SessionStorage

手动执行 JS 命令行

自定义插件

扫码预览:

项目地址:

https://github.com/Tencent/vConsole



7、通用Web组件化框架 Omi  star:7383

Omi 是一款用于创建用户界面的组件化框架,开放并且现代,故得名:Omi(Open and modern framework for building user interfaces)。

特性:

超小的尺寸,7 kb (gzip)

局部 CSS,HTML+ Scoped CSS + JS 组成可复用的组件。不用担心组件的 CSS 会污染组件外的,Omi会帮你处理好一切

更自由的更新,每个组件都有 update 方法,自由选择时机进行更新。你也可以和 obajs 或者 mobx 一起使用来实现自动更新

模板引擎可替换,开发者可以重写 Omi.template 方法来使用任意模板引擎

完全面向对象,函数式和面向对象各有优劣,Omi 使用完全的面向对象的方式来构建 Web 程序

ES6+ 和 ES5 都可以,Omi 提供了 ES6+ 和 ES5 的两种开发方案。你可以自有选择你喜爱的方式

项目地址:

https://github.com/Tencent/omi

8、高效的 C++ JSON 解析/生成器  RapidJSON    star:7296

RapidJSON 是一个 C++ 的 JSON 解析器及生成器,提供 SAX 及 DOM 风格 API。它的灵感来自 RapidXml。

RapidJSON 小而全。它同时支持 SAX 和 DOM 风格的 API。SAX 解析器只有约 500 行代码。

RapidJSON 快。它的性能可与 strlen() 相比。可支持 SSE2/SSE4.2 加速。

RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至不依赖于 STL。

RapidJSON 对内存友好。在大部分 32/64 位机器上,每个 JSON 值只占 16 字节(除字符串外)。它预设使用一个快速的内存分配器,令分析器可以紧凑地分配内存。

RapidJSON 对 Unicode 友好。它支持 UTF-8、UTF-16、UTF-32 (大端序/小端序),并内部支持这些编码的检测、校验及转码。例如,RapidJSON 可以在分析一个 UTF-8 文件至 DOM 时,把当中的 JSON 字符串转码至 UTF-16。它也支持代理对(surrogate pair)及 "\u0000"(空字符)。

项目地址:

https://github.com/Tencent/RapidJSON

9、微信开源的高效、完整、易用的移动数据库框架  WCDB  star:6988

WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。

WCDB for iOS/macOS

特性:

WINQ(WCDB语言集成查询): 通过WINQ,开发者无须为了拼接SQL的字符串而写一大坨胶水代码。

ORM(Object Relational Mapping): WCDB支持灵活、易用的ORM。开发者可以很便捷地定义表、索引、约束,并进行增删改查操作。

多线程高并发: WCDB支持多线程读与读、读与写并发执行,写与写串行执行。

加密:WCDB提供基于SQLCipher的数据库加密。

损坏修复: WCDB内建了Repair Kit用于修复损坏的数据库。

反注入: WCDB内建了对SQL注入的保护。

项目地址:

https://github.com/Tencent/wcdb

10、基于 mmap 内存映射的移动端通用 key-value 组件   MMKV 

 star:6521

MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。

近期也已移植到 Android / macOS / Windows 平台,一并开源。

MMKV 源起:

在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的 crash,参考文章,文章里面设计的技术方案是在关键代码前后进行计数器的加减,通过检查计数器的异常,来发现引起闪退的异常文字。在会话列表、会话界面等有大量 cell 的地方,希望新加的计时器不会影响滑动性能;另外这些计数器还要永久存储下来——因为闪退随时可能发生。

这就需要一个性能非常高的通用 key-value 存储组件,我们考察了 SharedPreferences、NSUserDefaults、SQLite 等常见组件,发现都没能满足如此苛刻的性能要求。

考虑到这个防 crash 方案最主要的诉求还是实时写入,而 mmap 内存映射文件刚好满足这种需求,我们尝试通过它来实现一套 key-value 组件。

项目地址:

https://github.com/Tencent/mmkv

请各位保持关注「腾讯技术工程」公众号,我们会持续更新腾讯开源项目。

转载于:https://blog.51cto.com/13591395/2371845

腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等相关推荐

  1. 第二篇|腾讯开源项目盘点:ncnn、xLua、libco等

    开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来. 腾讯开源了个 ...

  2. 第一篇|腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等

    开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来. 腾讯开源了个 ...

  3. 阿里巴巴微服务开源项目盘点

    文章目录 阿里巴巴微服务开源项目盘点 1.Apache Dubbo 2.Apache RocketMQ 3.OpenMessaging 4.Nacos 5.Sentinel 6.Arthas 7.Sp ...

  4. python开源社区汇总_Github上热门Python开源项目盘点

    5月份GitHub上最热门的Python开源项目排行已经出炉啦,一起来看看上榜详情吧: 1. manim https://github.com/3b1b/manim Star 19308 manim是 ...

  5. 2019 年最受欢迎的 Python 开源项目盘点!

    点击上方"Python技术之巅",马上关注,每天下午17:40准时推送 真爱,请置顶或星标 Python是当下最火的编程语言之一,在GitHub上有大量热门开源项目,近日开源众包平 ...

  6. 人生重开模拟/合成大西瓜/小空调......2021爆款开源项目盘点

    转眼间,2021年已过大半,你还记得今年在开发者朋友圈里爆红的开源项目吗? 本文就来简要盘点2021涌现出的"宝藏"级开源项目,看看这一届的开发者们,又有哪些新脑洞! 彩蛋:大部分 ...

  7. 阿里巴巴微服务开源项目盘点(持续更新)

    大前端.微服务.数据库.更多精彩,尽在开发者分会场 [Apache Dubbo] Apache Dubbo 是一款高性能.轻量级的开源Java RPC框架,是国内影响力最大.使用最广泛的开源服务框架之 ...

  8. 阿里巴巴中间件开源项目盘点(持续更新)

    Apache Dubbo 是一款高性能.轻量级的开源Java RPC框架,是国内影响力最大.使用最广泛的开源服务框架之一,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动 ...

  9. 支付系统开源项目盘点

    1.龙果支付系统 roncoo-pay 1.1项目简介: 龙果支付系统核心目标是汇聚所有主流支付渠道,打造一款轻量.便捷.易用,且集支付.资金对账.资金清结算于一体的支付系统,满足互联网业务系统的收款 ...

最新文章

  1. AI一分钟 | 特斯拉再融46亿;腾讯AI Lab宣布开源多标签图像数据集
  2. 2.2 Java的基本数据类型
  3. Singleton Pattern (单例模式)
  4. 互联网性能与容量评估的方法论和典型案例
  5. mysql重装远程服务未_CentOS 7系统安装与远程连接MySQL(5.7)
  6. C++11遍历map
  7. Ubuntu 中设置源的几种方法
  8. Hello world开始
  9. sim7020c功耗_SIM7020C物联网NB-IOT模块 simcom代理
  10. zabbix 之 配置iptables允许10050端口
  11. C++异常 调用abort()
  12. 生成对抗网络 GAN 基本原理与发展历程
  13. 几个容易中的计算机类核心期刊,几个较容易发表管理类文章的核心期刊(转)...
  14. 发布微信小程序体验版
  15. Java精进-20分钟学会mybatis使用
  16. Linux——逻辑分区
  17. 电源芯片选择DC/DC还是LDO?
  18. 【Calcite】Apache Calcite 框架初探及概念详解
  19. 浅谈JAVA设计模式之——责任链模式(COR)
  20. 支撑马蜂窝「双11」营销大战背后的技术架构

热门文章

  1. Linux字体显示不同颜色
  2. Linux常用压缩命令
  3. Java移位运算之算术右移位
  4. 使用Windows Azure创建移动服务
  5. Oracle database 11g 安装 - 配置企业管理器database control失败
  6. photoshop修复面部的皱纹
  7. PHP中array_merge和array相加的区别分析
  8. react进阶系列 - 高阶组件详解四:高阶组件的嵌套使用
  9. 机器学习算法一览,应用建议与解决思路
  10. Linux 终端显示 Git 当前所在分支