扫一扫
关注 HG 公众号
发现更多开源乐趣

第 08 期

兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣。

C# 项目

1. Newtonsoft.Json

Star 7.4k Watch 521 Fork 2.5k
Newtonsoft.Json 是一款 .NET 平台中开源的 JSON 序列化和反序列化类库,示例代码:

public class Account
{
    public string Email { get; set; }
    public bool Active { get; set; }
    public DateTime CreatedDate { get; set; }
    public IList<string> Roles { get; set; }
}

Account account = new Account
{
     Email = "james@example.com",
     Active = true,
     CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, ateTimeKind.Utc),
     Roles = new List<string>
     {
         "User",
         "Admin"
    }
};

string json = JsonConvert.SerializeObject(account, Formatting.Indented);
// {
//   "Email": "james@example.com",
//   "Active": true,
//   "CreatedDate": "2013-01-20T00:00:00Z",
//   "Roles": [
//     "User",
//     "Admin"
//   ]
// }

Console.WriteLine(json);

C++ 项目

2. libco

Star 4.9k Watch 452 Fork 1.4k 中文
腾讯的开源项目——libco 是微信后台大规模使用的 C/C++ 协程库,2013 年至今稳定运行在微信后台的数万台机器上。

  • 无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升
  • 支持 CGI 框架,轻松构建 Web 服务
  • 支持 gethostbyname、mysqlclient、ssl 等常用第三方库
  • 可选的共享栈模式,单机轻松接入千万连接
  • 完善简洁的协程编程接口
    • 类 pthread 接口设计,通过 cocreate、coresume 等简单清晰接口即可完成协程的创建与恢复
    • __thread 的协程私有变量、协程间通信的协程信号量 co_signal
    • 语言级别的 lambda 实现,结合协程原地编写并执行后台异步任务
    • 基于 epoll/kqueue 实现的小而轻的网络框架,基于时间轮盘实现的高性能定时器

Go 项目

3. kcptun

Star 11.2k Watch 594 Fork 2.2k 中文
也许是世界上最快的 UDP 传输工具,支持 macOS/Linux/Windows/FreeBSD/ARM/Raspberry Pi/OpenWrt。
kcptun

Java 项目

4. AndroidUtilCode

Star 25.8k Watch 1.1k Fork 8.5k 中文
Android 开发人员不得不收集的代码,中文介绍

5. DanmakuFlameMaster

Star 8.2k Watch 403 Fork 2.0k 中文
Bilibili 开源的 Android 开源弹幕引擎·烈焰弹幕使。特性:

  • 使用多种方式(View/SurfaceView/TextureView)实现高效绘制
  • 该站 XML 弹幕格式解析
  • 基础弹幕精确还原绘制
  • 支持 mode7 特殊弹幕
  • 多核机型优化,高效的预缓存机制
  • 支持多种显示效果选项实时切换
  • 实时弹幕显示支持
  • 换行弹幕支持/运动弹幕支持
  • 支持自定义字体
  • 支持多种弹幕参数设置
  • 支持多种方式的弹幕屏蔽

JavaScript 项目

6. WeFlow

Star 3.2k Watch 150 Fork 462 中文
微信出品的一个高效、强大、跨平台的 Web 前端开发工作流工具,官网
WeFlow

7. atrament.js

Star 921 Watch 29 Fork 79
极小的 JavaScript 画板,在线演示

8. incubator-weex

Star 13.2k Watch 539 Fork 1.8k 中文
移动端,跨平台前端框架,详细的中文档

Objective-C 项目

9. aria2gui

Star 7.7k Watch 284 Fork 849 中文
Aria2 的 Mac 客户端(下载工具),介绍、使用方法,特点:

  • 集成了 aria2,运行后即完成配置工作
  • 多线程下载
  • 未完成任务退出可以自动保存
  • 支持迅雷离线,百度、115、360 等网盘的 aria2 导出(需要浏览器插件支持)
  • 支持 PT/BT,BT 速度跟种子热度有关,如果没有速度网盘离线后再下载
  • 在 Badge 显示整体下载速度
  • 任务完成通知

aria2gui

Python 项目

10. reddit

Star 15.2k Watch 742 Fork 2.8k
reddit.com 网站的源码,通过这个项目,可以学习 Python 在构建大型项目中的使用、项目结构、代码风格、Python 技巧的使用方法等。安装教程
reddit

11. httpstat

Star 3.9k Watch 117 Fork 262
httpstat 美化了 curl 的结果,使得结果更加可读。同时它无依赖、兼容 Python3、一共才 300 多行。还可以显示 HTTP 请求的每个过程中消耗的时间,如下图:
httpstat

12. PyMySQL

Star 5.6k Watch 234 Fork 1.1k
纯 Pyton 写的 MySQL 库,纯 Python 的好处就是可以运行在任何装有 Python 解释器(CPython、PyPy、IronPython)的平台上。相对于 MySQLdb 性能几乎一样,使用方法也一样,但是 PyMySQL 安装方法极其简单——pip install PyMySQL,PyMySQL 使用示例代码:

# 下面为例子需要的数据库的建表语句
CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `email` varchar(255) COLLATE utf8_bin NOT NULL,
    `password` varchar(255) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1 ;
# -*- coding: utf-8 -*-
import pymysql.cursors

# 连接数据库
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             db='db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        # 创建一个新的纪录(record)
        sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
        cursor.execute(sql, ('webmaster@python.org', 'very-secret'))

    # 连接不会自动提交,所以你想下面要调用 commit 方法,存储对数据库的改动
    connection.commit()

    with connection.cursor() as cursor:
        sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
        cursor.execute(sql, ('webmaster@python.org',))

        # 获取一条的纪录(record)
        result = cursor.fetchone()
        print(result)  # 结果输出:{'password': 'very-secret', 'id': 1}
finally:
    connection.close()  # 操作完数据库一要记得调用 close 方法,关闭连接

Ruby 项目

13. discourse

Star 29.5k Watch 929 Fork 6.6k
Ruby 语言写的论坛,百分之百开源、免费。
discourse

其它

14. How-To-Ask-Questions-The-Smart-Way

Star 8.9k Watch 332 Fork 2.5k 中文
提问的智慧,提出一个好的问题是解决问题的关键

15. jstraining

Star 16.9k Watch 1.1k Fork 4.6k 中文
阮一峰写的全栈工程师培训材料

16. PTVS

Star 2.2k Watch 304 Fork 607
Visual Studio 下的 Python 开发插件

17. the-swift-programming-language-in-chinese

Star 19.1k Watch 1.3k Fork 5.0k 中文
中文版 Apple 官方 Swift 教程《The Swift Programming Language》

18. styleguide

Star 2.0k Watch 156 Fork 760 中文
百度前端研发团队的文档与源码编写风格

19. macOS-Security-and-Privacy-Guide

Star 15.4k Watch 717 Fork 1.1k 中文
MacOS 的安全和隐私指南,中文翻译版