Blb是一种用go 实现的分布式对象存储系统。 它专为在集群计算环境中的裸机上使用而设计。客户端API 也用Go来实现,它使用类似于Go文件(io.ReadWriteSeeker)的接口公开对象。
fmtsort: go1.12 中将内置按map key 排序输出
这个功能放在fmt 模块,到时可以用fmt.Sprint 直接输出按map key 排序的结果,性能会更好。
Golang ping 服务器实现
golang ping 服务器,可以用系统调用也可以用go内置的库。
Golang webview 做桌面应用及跨平台编译
这是一个小型跨平台webview库,用于构建跨平台GUI。 还支持Rust、Python、Nim、Haskell和 C# 绑定。支持双向JavaScript绑定。
FaceBook 开源的通用网络协议的压力负载测试工具-fbender
FaceBook 开源的压测工具,golang 实现,妈妈再也不用担心我的压测了
centrifuge: 实时消息服务
构建实时消息服务的方案有很多种,centrifuge是用go 实现的一种,功能确实不错,基于Websocket SockJS 通信。
golang 把http.Client 读取的图片直接放到image.Decode 处理
用http.Client 从网络上读到图像文件,response body 是 io.Reader,可以直接输给 image.Decode
godown: 一个简单、分布式、容错的K/V 数据库
godown 是受Redis的启发,用go 实现的分布式容错的key-value 数据库。 它使用Raft protocotol作为一致性算法。 它支持String,Bitmap,Map,List数据结构。
Golang 伪随机/真随机取某个范围内的随机数
golang 内置能实现伪随机(math/rand)和真随机(crypto/rand)的库。
Golang WebAssembly 了解一下
Go 1.11 起开始支持 WebAssembly ,也就是说以后可以使用任何语言作为“前端语言”来进行 Web 开发。
vuego: 用GO编写 vue.js 前端
vuego 是一个基于WASM 对Vue.js 的封装,使用Web Assembly 编译。可以让开发者用go 来写Vue.js 前端脚本。
Golang+selenium+chrome headless + goquery 在Linux 上作爬虫实践
以前使用PhantomJS,但效果并不好,现在使用Golang+selenium 驱动 chrome headless 模式,再用 goquery 解析html 字符,很方便。
Golang 依赖包代理私服
Go 1.11 的Modules 特性让 vendor 能力不及。
golang Selenium WebDriver 使用记录
Selenium WebDriver 直接通过浏览器自动化的本地接口来调用浏览器,以达到模拟浏览器行为的操作,如点击、选择、鼠标移动等。下面是记录个人使用golang 驱动的记录。
golang共享数据用Mutex 或 Channel
在go 里,多线程对共享数据的操作一般要使用Mutex 或 Channel 来加锁或隔离通信。下面是一个使用Mutex 和 Channel 比较的例子。
Golang 生成防识别的图片验证码
验证码 captcha 是对抗密码强力破解、垃圾信息的有效方式,一般用于用户注册、登录,当检测到频繁发帖时也会启用验证码。下面介绍用golang 生成防机器识别的图片验证码。