Go语言资料收集

x_focus · · 7836 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Go语言资料收集

 

说明

  • 发布站点 GitHub CSDN 新浪
  • 最后更新 2012-03-31 Go1正式发布,更新相关资料,详见 变更记录
  • 缘起说明 想学习称手的新语言,发现Go后非常感兴趣,也把接触到的一些资料整理共享出来。
  •      资料若有错误或缺漏,或者大家有更好的建议,欢迎 邮件联系 可看 已收集建议
  • 收集原则 尽量收集原创链接,有时会记录一些学习心得,或摘录一些启发自己的原文
  •      如果同学们觉得内容还有点帮助,欢迎转载,指明原始出处更好,谢谢! (^_^)
  •      
  •  注意  Go1变化较大,网上相关翻译文章可能未及时更新,请以官方英文为主。
 

网址导航

 

搜索引擎

  • 官网搜索 点这里 搜索官网上的代码和内容(搜索框在右上角)
  • catv搜索 点这里 搜索Go官网、项目、论坛和cat-v网(资源很多,如IRC日志等)
 

官方资源

 

cat-v

 

网站

 

博客

 

新闻资料

 

2012年

  • 2012-03-29 Go 项目取得了历史性进展,Go 1 横空出世 新闻
 

2011年

  • 2011-11-17 谷歌将在明年初推出Go语言首个正式版本1.0 新闻
  • 2011-11-10 Go语言两周年 官方博文()
  • 2011-10-11 Go App Engine SDK 1.5.5发布 官方博文()
  • 2011-10-05 Go 1 预览 官方博文()
  • 2011-07-21 Go在App Engine现在已经公开可用了 官方博文 新闻1 新闻2
  • 2011-06-03 Google 推出 C++ Go Java Scala的基准性能测试 新闻
  • 2011-05-18 Dr. Dobb’s对Ken Thompson的采访 原文()
  • 2011-04-16 Brad Fitzpatrick 正式参与到 Go 语言项目中 新闻
  • 2011-04-13 Rob Pike谈Google Go:并发,Type System,内存管理和GC 新闻
  • 2011-05-23 Go在Google I/O 2011:视频 官方博文(可参见后文讲演视频)
  • 2011-03-16 Go变得更加稳定了 官方博文
 

2010年

  • 2010-11-10 Go语言一周年 官方博文(译1 译2)
  • 2010-10-12 Google解决Go语言名称问题 新闻
  • 2010-09-15 Go Playground介绍 官方博文 新闻
  • 2010-09-06 Go 荣获 2010 Bossie 奖 官方博文()
  • 2010-07-22 Go语言创始人对Java、C++的复杂性不满 新闻()
  • 2010-06-06 Go在Google I/O 2010:视频 官方博文(可参见后文讲演视频)
  • 2010-05-27 Go在Google I/O 2010:常见问题 官方博文()
  • 2010-05-12 Go在Google I/O 2010:即将来临 官方博文
  • 2010-05-05 新的谈话和教程 官方博文
  • 2010-03-18 Go:2010年3月的最新消息 官方博文
  • 2010-01-29 GCC宣布对Go语言的支持 新闻
  • 2010-01-11 1月编程榜发布:Google Go意外夺得年度编程语言 新闻
 

2009年

  • 2009-11-12 Go语言源码的一个改动 博文
  • 2011-11-11 Go 语言:Google 的新编程语言 博文 新闻
 

官方资料

 

官方博文

  •  
  • 语言

    • 2011-07-12 错误处理和Go 原文(译1 译2)
    • 2011-05-25 一个GIF解码器:Go接口的使用 原文
    • 2011-01-05 Go的切片:用法和内幕 原文
    • 2011-09-23 Go的并发模式:超时、继续 原文()
    • 2010-08-04 Defer、Panic 和 Recover 原文(译1 译2)
    • 2010-07-07 Go的声明语法 原文()
    • 2010-04-27 JSON-RPC:接口的传说 原文
  •  
  •  
  • 工具

  •  
  • 2012年其他博文

  •  
  • 2011年其他博文

    • 2011-12-21 调查Go社区情况 原文
    • 2011-12-19 使用Go开发StatHat 原文
    • 2011-12-13 从零到Go:24小时内登上Google主页的Go语言应用“火鸡”doodle开发纪实 原文()
    • 2011-11-01 编写可扩展的App Engine应用 原文
    • 2011-10-30 使用GNU调试器调试Go代码 原文()
    • 2011-10-04 从浏览器中学习Go 原文
    • 2011-09-01 两个Go演讲:“Go的词汇扫描”和“Cuddle:一个App Engine演示” 原文 词汇扫描优酷视频 AppEngine优酷视频
    • 2011-06-30 “Go中的一级函数”和新的教程说明 原文
    • 2011-06-03 Go外部库的关注 原文
    • 2011-05-10 Go和Google App Engine 原文()
    • 2011-04-21 Go在Heroku中的应用 原文(译1 译2)
    • 2011-04-15 Gofix介绍 原文(译1 译2 译3)
  •  
  • 2010年其他博文

    • 2010-11-02 调试Go程序(状态报告) 原文()
    • 2010-10-19 实际的Go项目:SmartTwitter和web.go 原文( 作者)
    • 2010-07-13 用通讯来共享内存 原文()
    • 2010-04-20 第三方库:goprotobuf 和更多 原文
 

社区Wiki

 

讲演视频

  • 用Go写web程序 优酷视频 优酷视频 YouTube视频
    • Rob Pike 和 Andrew Gerrand 在 Google I/O 2011 大会上的谈话
    • 回顾一个简单web应用的架构和开发,揭示 GAE 上的 Go实现
  • 现实中的Go语言 PDF 土豆视频
    • Andrew Gerrand 在 在Google I/O 2011 训练营(Boot Camp)上的谈话
    • 概述了Go语言的类型系统和并发模式,并提供四个用Go程序解决实际问题的案例
  • Go语言编程 优酷视频 YouTube视频
    • Rob Pike 和 Russ Cox 在 Google I/O 2010 大会上的演讲
    • 通过一些表现Go语言特性的样例,揭示了Go与其他语言的不同
    • 内容涉及并发、内置类型、方法和其他类型、通过接口构建程序
  • Go语言编程实践 幻灯 优酷视频
    • 谈及使用Go语言开发一个完整的web应用
    • 通过一个简单的短地址服务,揭示设计、存储、并发、扩展性等细节
  • Go语言技术座谈 PDF 优酷视频(英文字幕) YouTube视频 相关新闻
    • Rob Pike 2009年10月在google的一次四小时演讲
    • Go语言的第一次公开介绍,这以后Go语言不断在发展改变,但这次介绍依然是出色的
  • YouTube上的Go编程频道 频道
  • 富于表现力的Go语言 PDF
    • Rob Pike 在 2010 JAOO 大会上的演讲
    • 谈到 Go 语言富于表现力,又容易理解
  • 不同设计的Go语言 演讲介绍 PDF 优酷视频 Pike在56:19时出现
    • Rob Pike 在2010开源技术大会上的演讲
    • 为不了解Go语言的听众,提供的教程,介绍Go语言相关背景和重要特性。
  • Public Static Void 演讲介绍 PDF 优酷视频
    • Rob Pike 在2010开源技术大会上的演讲
    • 反思面向对象的编程
  • 新兴语言Go的演讲 演讲介绍 PDF
    • Rob Pike 在2010开源技术大会上,对新兴语言Go的演讲
    • 摘要:Go在并发性上和大多数语言都不同,即便是以并发为中心的Erlang等。 回顾了从Hoare的1978年论坛到Go的历程,深刻介绍Go怎样以及为什么这样做
  • Go语言的GCC前端 PDF
    • Ian Lance Taylor 在 GCC 2010 峰会上的演讲
    • 谈到了对GCC的Go语言前端
  • Go语言的宣传视频 优酷视频 YouTube视频
    • Russ Cox 演示Go语言的快速编译
 

开发团队

  • Ken Thompson 百度百科
    • Unix之父,1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。
    • 是Unix操作系统、Plan9操作系统、UTF-8编码和B编程语言(C的前身)的创立者之一。
    • 94年底跑到莫斯科开米格29战机,然后2000年从贝尔实验室正式退休全职飞行。2007年加入谷歌
  • Rob Pike 个人网站 Google介绍
    • 曾在贝尔实验室工作,是Unix操作系统、Plan9操作系统、Limbo编程语言和UTF-8编码的主要设计者,
    • 还有两本书The Unix Programming Environment和The Practice of Programming;
  • Robert Griesemer
    • 曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。
  • Ian Lance Taylor 博客
    • GCC社区的超级活跃人物,是gold连接器和GCC过程间优化LTO的主要设计者之一,是Zembu公司的创始人之一。
  • Russ Cox 博客
    • Plan9圈子的名人。也可以说是Ken/Dennis/Rob的Unix衣钵的传承人。
    • 读高中时就连续三年代表美国参加国际信息学奥林匹克竞赛。然后在MIT直到2008年博士毕业。
    • 他把Plan9操作系统的运行环境几乎完整的移植到Linux,FreeBSD和MacOSX上。
  • Andrew Gerrand 博客
  • Brad Fitzpatrick
    • 访谈Brad Fitzpatrick—《编程人生》
    • 80后,五岁学编程
    • 综合型SNS交友网站 LogoLiveJournal 创始人,后卖出
    • 网站日渐流行使其开发了memcached 、Perlbal 和 MogileFS等开源项目
    • 2007 年选择加入Google,2011年4月16日全职加入 Go 项目
 

其他资料

 

书籍教程

 

实践与评价 2011

  • 2011-12-26 《Uniqush: 服务器端手机推送平台》
    • Uniqush(介绍帖 主页 配图说明 源码Go体会帖
    • 作者 monnand :已有十年开发经验,第一语言是C,用C/C++, Python, Perl,现在也用go,偶用java
    • Uniqush是用Go开发的服务系统,开源,可自行搭建服务
    •  常见智能手机平台都会提供云服务,负责向手机客户端推送消息(Google的android是C2DM,苹果叫APNS等)
    •  uniqush 抽象了官方云服务调用接口,开发者可以用统一的接口,开发推送消息的代码
    •  后续支持更多云服务,另外还将提供客户端开发库
    • Go体会
    •  Go标准库变化太快,等Go1了
    •  Gointerface最大好处在于,可以先实现后抽象
    •  goroutine 很适合多核,配合channel很方便很好用
    •  内置map很方便,slice很好用...提高开发效率
    •  面向对象?常用的设计模式都可以用Go来实现。你还要啥自行车呢?
    •  效率!它是个编译语言!它要有效率!
  • 2011-12-19 《使用Go开发StatHat》
    • Go官方博文 开源模块
    • 作者Patrick Crosby:是 Numerotron 公司开发者
    • 从多方面详细探讨使用Go的原因:
    •  前后端统一、好和快速的模版、快速开发编译测试、大并发支持、高性能、RPC、标准库、开源
  • 2011-12-13 《Google 主页“火鸡”应用开发纪实》
    • Go官方博文 (译) 源码
    • 作者Reinaldo Aguiar:是Google 搜索团队软件工程师
    • App Engine runtime 选型:图像处理任务极度依赖 CPU...性能是决定性因素。
    • Python 2.7 应用处理请求的中位响应时间为 65 毫秒,而 Go 是 32 毫秒。
    • 此前我对 Go 语言毫无经验,而时间又很紧:两天内达到生产需求。
    • Go 语言的语法直观、简单且洁净。我过去常与解析型语言打交道,尽管 Go 是静态类型系统的编译型语言,编写这款应用的感觉却更像是在用动态解析型语言。
    • Go 语言优秀的文档也帮助了我迅速完成开发...鼓励开发者深入挖掘软件包的实现,简化了对良好编程风格与规则的掌握。
  • 2011-10-19 《从 Erlang 到 CERL 到 Golang》
    • ECUG2011 Q盘主页 PPT
    • 作者许式伟:金山高手,后到盛大创新院,现为QBox.me创始人,ECUG发起人
    • Q盘QBOX.ME:服务端 99% 代码基于 Golang、累计约 10w 行 Golang 代码
    • Go类型系统
    •  理念:除了不推荐操作符重载外,User Type 与内置类型没有任何区别。
    •  没有隐式的类型转换、没有重载、没有继承,只有组合(匿名组合可达部分继承效果)
    • Go内存管理:Gc、透明(自动选择何时使用栈,何时使用堆)
    • Go非侵入性接口:代码解耦,按需定义,无需事先进行 “统筹”
    • 错误处理:defer;进程:goroutine;程通信:channel
    • 风险:新模块可尝试Go,推荐服务端,Go变化快,小众
  • 2011-11-19 《Thinking in Go》
    • ECUG Con 2011大会 演讲PPT
    • 作者韦光京:基金买卖网CTO。Go语言尤其是Windows平台移植的积极贡献者。
    • 为什么喜欢Go:向Unix致敬、C+Python动静相宜、语法可读性强、开源、just for fun
    • 一些特别地方:自动类型推导减少打字
    • 非常实用工具:Gofmt格式化代码、Gofix自动更新代码、Godoc从Go代码中生成文档、Gotest 测试框架Gotest测试框架、Gotest测试框架、Goinstall下载并编译安装库
    • 跨平台,交叉编译(设置GOOS,GOARCH环境变量)
    • Google App Engine支持
    • 没有类的面向对象机制
    •  任何类型都可以有方法,任何类型都可以是对象
    •  Interface强制数据和代码分离
    •  继承通过嵌入来实现(Mix-in)
    •  冲突的简单处理
    • 动态特性:Duck typing(Interface定义方法集合,任何类型实现了这些方法就实现了这个interface)
    • 反射:Interface {} TypeOf ValueOf SetXXX
    • 并发:
    •  语法级支持(Goroutines、Channel);
    •  Channel is First class(Channel传递的消息可以是channel)
    •  用同步的方式来简化并发编程;
    •  Communicating Sequential Processes (CSP)
  • 2011-11-19 《golang 开发实践》
  • 2011-06-07 《Go编程语言,或者:为什么除了它,其他类C语言都是垃圾》
  • 2011-04-21 《Go在Heroku中的应用》
    • Go官方博文 (译1 译2) Doozer(介绍 源码 中文介绍)
    • 作者Keith Rarick 和 Blake Mizerany:是 Heroku 的系统工程师
    • 使用Doozer解决分布式系统物理服务器间的协作问题
    • Doozer是用Go编写的,新的、一致性的、高可用的数据存储
    • Go 原生的并发机制使得这个任务更加简单
    • 垃圾回收机制改进了 malloc 和 free
    • goroutine 和 channel 改进基于锁的并发
    • Go标准包是在 Doozer 上的另一个巨大成功
    • 最喜欢的生产力提高来自于 Go的代码格式化工具:gofmt
    • Go静态连接意味着 Doozer 无序额外的依赖
    • Go简洁的设计哲学与我们对软件工程的认识令人发狂的一致。
    • 将来的项目中使用 Go 已经有了一些想法。Doozer 对于一个大系统来说只是刚刚开始。
  • 2011-03-30 《关于go语言》
    • 博文
    • 作者:腾讯soso王益
    • 这只螃蟹很好吃;向大家推荐。
    • 总体感觉:语法简单、编译速度非常快、开发效率非常高
    • 我从高一开始写C++程序,这么些年里对Java、Python之流是学懂了就烦了放弃了,只有对C++忠贞不二;但是用了Go之后,现在已经不想再用C++写程序了。
    • 另外从多个方面谈了自己的体会:Go vs C++、Class、Class Hierarchy、String、UTF 和 XML、STL vector 和 map、Containers、Closure 和 Callback、Multi-threading 和 Synchronization、Protocol Buffer、Go进程间通信、格式化输出、gflags、glog、HTTP Server、self-compilation、从Go调用C/C++
  • 2011-03-26 《Go语言Web开发》
  • 2011-02-27 《Go语言》
    • 沙龙 slide幻灯
    • 作者:韦光京
    • 对分布式和多核的支持
    • 动静皆宜、编译飞快、语法很简单、关键字只有25个
    • 非常棒的并发支持、出色的包支持、没有类的继承
    • Google只有一点影响到Go,而且这个影响非常正面
    • Google的开发模式:codereview机制
  • 2011-02-27 《Go集成C和C++代码》
 

实践与评价 2010

  • 2010-12-13 《beansdb 卷土重来》
  • 2010-11-18 《Go 语言初步》 云风 原文
    • mix-in 的接口风格。非常接近于我在用 C 时惯用的面向对象风格
    • 强类型系统。使得犯错误的机会大大降低。
    • 而编写程序又有点使用 lua 这种动态语言的感觉,总之,写起来很舒服。
    • 内置的 string / slice 类型,以及 gc 。这是我觉得现代编程必须的东西。
    • defer 是个有趣使用的东西,用它来实现 RAII 比 C++ 利用栈上对象的析构函数的 trick 方案让人塌实多了。
    • zero 初始化。我一直觉得 C++ 的构造函数特别多余。
    • 包系统特别的好。而且严格定义了包的初始化过程,即 init 函数。
    • goroutine 是个相当有用的设计。
    • 我发现我花了四年时间锤炼自己用 C 语言构建系统的能力,试图找到一个规范,可以更好的编写软件。结果发现只是对 Go 的模仿。缺乏语言层面的支持,只能是一个拙劣的模仿。
    • 学习新东西还是很累的。好在 Go 的各种设计都非常切合我的本意,所以自然是越写越舒服了。
    • Go 的引用和值分得很清楚,这使它更像 C 而不是 Java ,却又提供了 C++ 提供不了的安全性。
    • 用 Go 写网络程序,真是非常舒心。socket 和 file 在 interface 上的统一,暗合 Unix 之道。程序嘛,就是处理输入,产生输出。Reader 和 Writer 接口让人愉快。
  • 2010-04-25 《Go语言: 互联网时代的C》 李兆海
  • 2010-01-21 《Go Lang介绍》 余峰 原文
  • 2010-01-17 《使用go语言一个月的认识》 life 原文
  • 2009-11-11 《C, Erlang, Java 和 Go Web Server 性能测试》 Tim 原文
 

开源项目

 

工具系列

  • 2011-12-27 密码生成器 PwdGen
    • 讨论帖 项目主页
    • 作者:柴树杉
    • 针对CSDN等很多网站保存明文密码的问题,开发的密码生成工具
    • 主要用于对每个不同网站或ID随机生成不同的密码.
 

专题文章

 

数据结构

  • 2010-05-28 《Google Go!》 Martin Aigner 和 Alexander Baumgartne PDF
    • 用图形讲解数据类型、new、make和通道
 

cgo




---------------------------------------------------------------------------------------------------------

golang底层实现资料

2012-07-17 18:27 by 轩脉刃, 3164 阅读, 0 评论, 收藏编辑

内存,内存中的变量和指针

http://golangtutorials.blogspot.jp/2011/06/memory-variables-in-memory-and-pointers.html

 

How does reflection work internally?

https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/NYs7L5UvSHo

很好的一篇讲runtime的文章(必看)

http://pastebin.com/LEsB8FVW

 

golang的内部实现(中文)

http://www.cnblogs.com/genius0101/archive/2012/04/16/2447147.html

 

golang的内部实现(英文)

http://code.google.com/p/try-catch-finally/wiki/GoInternals

Broken abstractions in Go

http://research.swtch.com/goabstract

Gccgo panic/recover

http://www.airs.com/blog/archives/376

Go's Package Name Space

http://research.swtch.com/gopackage

Go Data Structures: Interfaces

http://research.swtch.com/interfaces

貌似一个牛人的博客:

http://research.swtch.com/

golang中的xg作用

http://blog.csdn.net/hopingwhite/article/details/5782888

go研究的一个中文博客:

http://blog.csdn.net/hopingwhite/article/category/705187

golang中string型的比较运算的实现

http://runtime.diandian.com/post/2011-12-05/7497154

go语言中split stack

http://runtime.sinaapp.com/?p=36

 

go资源库汇总

http://go-lang.cat-v.org/pure-go-libs

go的一些视频,可以找到一些语言设计层面的东西

http://go-lang.cat-v.org/talks/

 

go与C的交互之cgo

http://golang.org/cmd/cgo/

http://golang.org/doc/articles/c_go_cgo.html

这两篇文章是了解cgo必读的文章

-------------------------------------------------------------------------------------------------------------------------------------------------
Go官方网站
1.Go语言论坛,http://bbs.mygolang.com/forum.php
2.Golang中国社区,http://www.golang.tc/
3.go在线教学,[url=http://go-tour-zh.appsp0t.com/]http://go-tour-zh.appsp0t.com/[/url]

Go语言QQ交流群

Go语言名人堂
1.谢大,https://github.com/astaxie/build-web-application-with-golang
谢大 谢孟军,网名ASTA谢,现就职于盛大云,高级研究员,技术经理,主要从事盛大云分发的系统研发工作,努力为盛大游戏、盛大文学、酷六等提供更好的CDN服务。热爱技术,尤其关注实现服务器端高性能、高可用等相关技术。开发了beego、beedb等各类基于Go语言的开源框架和库,致力于Go语言的推广和研究。
https://github.com/astaxie/gopkg大家多支持这个,中文手册才能更好
https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/preface.md

2.无闻,http://my.oschina.net/Obahua/blog/110767
《Go编程基础》https://github.com/Unknwon/go-fundamental-programming
教学,http://www.tudou.com/programs/view/cN509MrfI4s/

Go语言教学
1.Go编程基础(无闻) ,http://www.ucai.cn/course/show/69
2.Google Go语言在线免费教程 ,http://url.cn/IDDMHx


Go语言开发工具
1.LiteIDE Released for Go,https://code.google.com/p/golangide/downloads/list

Go语言构架
1.有beego就不要这玩意了goku,
2.Go 的 Web 框架 Goku,http://www.oschina.net/p/goku
3.推荐一个好玩的库:https://github.com/buger/gor

Go语言构架列表,http://bbs.mygolang.com/forum.php?mod=viewthread&tid=546&page=1&extra=#pid1507



Go语言实际案例
1.https://github.com/bitly/nsq,golang 写的q
2.https://gitcafe.com/xZWL/fog,go开源云平台项目,ace
3.https://github.com/achun/Go-Blog-In-Action,Go语言博客实践,喻恒春(1417887429)


gitHub上的go语言项目:
1.谢大的gitHub,https://github.com/astaxie/build-web-application-with-golang/tree/master/ebook
2,https://github.com/going/toolkit/blob/master/strftime/strftime.go
3,https://github.com/achun/template
4.写了个waf 。这个程序是基于 nginx lua module,https://github.com/nixuehan/Belial
5.go游戏框架,https://github.com/xtaci/gonet




Go语言图书:
1.皮皮书屋,这里只有一些还不错的电子书,[url=http://www.ppurl.com/login/]http://www.ppurl.com/login/[/url]
2.Go语言图书列表,http://my.oschina.net/chai2010/blog/119967
3.Go语言博客实践,[url=https://github.com/achun/Go-Blog-In-Action]https://github.com/achun/Go-Blog-In-Action[/url]


Go语言精彩网站
1.最新版《Go 学习笔记》, http://www.kuaipan.cn/file/id_33580549696127012.htm
2.在线浏览GO文档?就去http://gowalker.org
3.昵称:AllenDanghttp://www.cnblogs.com/AllenDang/
4.昵称:Danny.tianhttp://www.cnblogs.com/ztiandan/archive/2013/01/17/2863153.html
5.oschina.net开源中国社区,http://www.oschina.net/project/lang/358/go?tag=0&os=0&sort=time
6.open经验库http://www.open-open.com/lib/tag/Go
7.Go1.1新特性介绍(语言和库更完善/性能提高约30%),http://my.oschina.net/chai2010/blog/117984#OSC_h2_19

gitHub学习资源
1.Git中国视频全集,http://bbs.mygolang.com/forum.php
2.http://git.oschina.net/
3.JS在线编辑演示,http://runjs.cn/code
4.开源中国在线工具,http://www.ostools.net/
5.http://html6game.com/web/
6.修改Go语言(golang)编译器源代码让它支持UTF-8 BOM ,http://blog.csdn.net/liigo/article/details/7467309
7.https://developers.google.com/freebase/
8.https://talks.golang.org/2013/advconc.slide#6
9.golang各种文件上传:http://sudochina.com/view/117
10.Golang:以软件工程为目的的语言设计,http://42.96.156.4/thread-52923-1-1.html
11.intel go社区,http://software.intel.com/en-us/blogs/2013/06/18/go-parallel
12.CHAI 的博客Go语言资料收集,http://chaishushan.blog.163.com/ ... 897201301432719402/
13.Go编程语言,或者:为什么除了它,其他类C语言都是垃圾,http://chaishushan.blog.163.com/blog/static/13019289720126121154651/


-----------------------------------------------------------------------------------------------------------------------------------------------------

Go Bindings for Various External APIs

Bindings to existing C libraries (using cgo).

Please contact me if you know of any others not listed here.

Databases and Storage

  • SQLite
    • gosqlite – SQLite 3 bindings with a very simple interface. By Russ Cox (one of the main Go developers at Google, so this is probably a good example of how to use cgo).
    • gosqlite3 – Go interface for SQLite3. By kuroneko.
    • gosqlite3 – Fork of the previous package with many new features and improvements. By Eleanor McHugh.
    • go-sqlite3 – Another set of bindings to access SQLite3 databases. By phf.
  • MySQL
    • mysqlgo – MySQL bindings for Go by Eden Li.
    • libmysqlgo – Another wrapper for the MySQL C API, by Bourke Floyd.
    • go-mysql – MySQL wrapper for Go by Masaaki Yonebayashi.
  • ODBC
    • godbc Go ODBC Interface using unixODBC by Benoy R Nair.
    • go-odbc – ODBC driver for Go, works on MS Windows and *nix with UnixODBC. By Wei guangjing.
  • PostgreSQL
    • gopgsqldriver – PostgreSQL driver for the standard Go database interface. By John Barham.
    • go-pg – PostgreSQL bindings for Go by oibore (Documentation in Japanese!) (See also the github project).
  • gotyrant – A Go wrapper for tokyo tyrant by Patrick Crosby.
  • cabinet – Bindings for the latest (1.2.46) kyoto cabinet. By ww.

GUIs and Widget Toolkits

  • go-gtk – Bindings for GTK. By Yasuhiro Matsumoto (aka mattn).
  • wxGo – SWIG-based wrapper for the wxWidgets toolkit. By Jeroen Dirks.
  • go-webkit – A webkit widget for go-gtk. By Yasuhiro Matsumoto (aka mattn).
  • X11
    • xgb – Low-level API to communicate with the X server modeled on XCB and supporting many X extensions. By Andrew Gallant.
    • xgbutil – Utility library to make use of the X Go Binding easier. By Andrew Gallant.
    • x-go-binding Port of XCB to generate Go bindings for X11 Window System protocol. Originally by Tor Andersson (when the project was known as ‘xgb’), now maintained by the Go core team at Google.
  • goosurface – An interface to Cairo via GTK by LisbonAcid.
  • termbox – A minimalist alternative to ncurses to build terminal-based user interfaces. By nsf.
  • go-fltk – Simple bindings for the FLTK2 GUI toolkit. By Bill Burdick.
  • go-iup – Bindings for the IUP cross-platform widget toolkiet. By Jeremy Cowgar.
  • go-ui – Cross-platform UI tool kit based on Qt. By visualfc.

MS Windows

  • WALK – “Windows Application Library Kit” for building native GUI apps for MS Windows. By Alexander Neumann.
  • go-ole – Implementation of Win32 OLE, all in pure Go so not technically a ‘binding’. By Yasuhiro Matsumoto (aka mattn).
  • gform – Windows GUI framework for Go. By Allen Dang.

Graphics and Audio

  • OpenGL:
    • gl – Go bindings for OpenGL. By banthar.
    • glfw – Bindings for libglfw for writing portable OpenGL applications. By jimt.
    • Go-GLUT – Bindings for OpenGL’s GLUT. By Robert Hencke.
    • GoGL – OpenGL binding generator. By Christoph Schunk.0
  • gocairo – Golang wrapper for Cairo graphics library. By Dethe Elza.
  • go-cairo – Newer bindings for Cairo. By Erik Unger.
  • SDL:
    • Go-SDL – Go bindings for SDL. By banthar.
    • ⚛Go-SDL – Fork of the above bindings with many improvements. By 0xe2-0x9a-0x9b (aka ⚛).
    • gosdl – Go wrapper for SDL by xJabberwocky (Abandoned).
  • allegro – Basic wrapper for allegro library by Pedro Gracia.
  • go-opencv – Bindings for Intel’s OpenCV computer vision library. By chaishushan.
  • go-gnuplot – Bindings for the GnuPlot library. By Sebastien Binet.
  • portaudio-go – Bindings for the PortAudio audio I/O library. By Gordon Klaus.
  • go-gd – Bindings for the ‘gd’ dynamic graphics generation library. By Evgeny Stepanischev.
  • gocanvas – Image processing library based on ImageMagick’s MagickWand. By José Carlos Nieto.

Audio

  • go-openal – Experimental OpenAL bindings for Go by Peter Froehlich.
  • pulsego – Go binding for PulseAudio by Moriyoshi Koizumi.
  • taglib.go – Bindings for the taglib audio audio-file metadata handling lib. By Taru Karttunen.
  • go-osc – Bindings for the liblo libary implementing the Open Sound Control protocol to interact with SuperCollider. By Matt Kane.

Video and Multimedia

  • go-pkg-libvlc – Bindings to the libVLC media player library. By Jim Teeuwen.
  • gmf – Google Go Media Framework, a wrapper around ffmpeg. By Albert Rosenfield.
  • gst – GStreamer bindings. By Michał Derkacz.

Scripting Languages

  • campher – Embedded Perl in Go. By Brad Fitzpatrick.
  • Lua
    • golua – Go wrapper for LUA’s C API. By Adam Fitzgerald (aka fosho) and others.
    • goluago – Aims to become a port of the Lua interpreter to Go (eventually pure Go). By Mateusz Czapliński.
  • go-python – Bindings for the CPython C API that enables you to use Python from your Go programs. By Sebastien Binet.
  • go-v8 – Bindings for the V8 JavaScript implementation. By mattn.

Text, Encodings and Regexps

  • golang-pkg-pcre – Bindings for the PCRE Perl-compatible regexps library. By Florian Weimer.
  • go-iconv – Bindings for the GNU libiconv character encoding conversion library. By Oibore.
  • go-migemo – Bindings for the migemo Japanese incremental search library. By Yasuhiro Matsumoto (aka mattn)

Console User Interface

  • readline-go – Wrapper around the GNU readline(3) library by me___ (that is Michael Elkins, not me!).
  • gocurse – Go bindings for NCurses by Timmcd and jabb.
  • go-term – Bindings for linux’s Terminal Information and Control termios(3) API. By John Mac.
  • go-linoise – Simple line editing library that replaces GNU Readline, inspired by linenoise, and built on top of go-term. By John Mac.
  • termios – Another set of termios(3) bindings for Linux. By Taru Karttunen.
  • go-tecla – Wrapper for the Tecla command-line editing library. By Michael MacInnis.

Networking and Network Protocols

  • gopcap – A simple wrapper around libpcap by Andreas Krennmair.
  • gozero – Experiental client and server bindings for the libzmq ØMQ messaging library. By Stefan Plantikow.
  • go-curl – Libcurl HTTP library bindings. By Andelf.

Games

  • libtcod-go – Libtcod is a cross-platform library of utilities for writing roguelike games. By Adam Folmert.

File Systems

  • fuse – Bindings to build FUSE file systems. By Taru Karttunen.

Math

  • gogmp – A more complete wrapping of the GNU Multiprecision Library based on the example bindings in misc/cgo/gmp/. By Utkan Güngördü.
  • go-cblas – Bindings for the CBLAS interface. By Sebastien Binet.
  • gocublas – Go wrapper for BLAS on NVIDIA’s CUDA. By Jay Booth.
  • cuda4 – Go bindings for nVIDIA CUDA 4. By Arne Vansteenkiste.

Compilers and Virtual Machines

  • gollvm – LLVM bindings. By nsf.
  • GoJVM – JVM (JNI) bindings for Go. By Abneptis LLC.

File Formats

  • goraptor – Bindings for the Raptor RDF parsing library. By ww.
  • gorasqal – SPARQL and related RDF query language bindings and utilities. By William Waites.
  • goyaml – Library to decoding and encoding YAML, wraps the C libyaml. By Gustavo Niemeyer.
  • geoip.og – Simple libGeoIP wrapper. By stiletto.
  • gomagic – Bindings for the libmagic file identification libary (similar to the Unix file(1) command) by Samuel Alexander Baldwin.

Misc

  • go-mtp – Bindings for the libmtp implementation of the Media Transfer Protocol to interact with media devices like MP3 players. By Jim Teeuwen.
  • upskirt.go – Bindings for the upskirt implementation of Markdown. By Ryan Lester.
  • gosndfile – Bindings for libsndfile. By Matt Kane.
  • [gorrd](http://code.google.com/p/gorrd/ – Librrd bindings. By Jeremy Wall.

HEP (High Energy Physics)

  • go-root – Bindings for ROOT’s C-API. By Sebastien Binet.
  • go-hepevt – Bindings for the hepevt package. By Sebastien Binet.
  • go-herwig – Bindings for the herwig package. By Sebastien Binet.


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:x_focus

查看原文:Go语言资料收集

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

7836 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传