representing zones time go

Go每日一库之178:chromedp(一个基于Chrome DevTools协议的库,支持数据采集、截取网页长图)

该库提供了一种简单、高效、可靠的方式来控制Chrome浏览器进行自动化测试和爬取数据。 项目地址:[https://github.com/chromedp/chromedp](https://github.com/chromedp/chromedp) **它可以模拟用户在浏览器中执行各种操作**,* ......
数据采集 chromedp DevTools 网页 数据

Go每日一库之141:go-bindata(嵌入静态文件)

使用 Go 开发应用的时候,有时会遇到需要读取静态资源的情况。比如开发 Web 应用,程序需要加载模板文件生成输出的 HTML。在程序部署的时候,除了发布应用可执行文件外,还需要发布依赖的静态资源文件。这给发布过程添加了一些麻烦。既然发布单独一个可执行文件是非常简单的操作,就有人会想办法把静态资源文 ......
静态 go-bindata bindata 文件 141

Go每日一库之146:bbs-go(bbs框架)

## 概要 [bbs-go](https://github.com/mlogclub/bbs-go) 是一款基于Go语言研发的`开源`、`前后端分离`、`精美小巧`、`跨平台`的社区系统。初期该项目仅用过学习和交流,开源之后越来越多的小伙伴儿开始喜欢和关注他,这也是我长期升级和维护的动力。 bbs- ......
bbs 框架 bbs-go 146 go

Go每日一库之130:go-humanize(人性化显示)

[go-humanize](https://github.com/dustin/go-humanize)是一个「人性化」的Go语言库,人性化的意思不是形容这个Go语言库,而是这个Go语言库实现的功能,它可以把数字、时间、容量等转换为我们人类容易理解的词语,比如硬盘的容量是 82854982 byte ......
go-humanize humanize 人性 130 go

Go每日一库之136:gopherjs(将Go代码编译成JS)

## 简介 [GopherJS](https://github.com/gopherjs/gopherjs) 可以将 Go 代码编译成纯 JavaScript 代码。其主要目的是为了让你可以使用 Go 来编写前端代码,这些代码可执行在浏览器上运行。你可以通过这里尝试下 GopherJS: [Goph ......
gopherjs 代码 136

Go每日一库之144:go-obs-websocket(OBS连接器)

# 推荐理由 互联网的兴起带动了直播行业的火热,除了少数直播网站有自己的推流工具之外,OBS是主流的推流工具,广泛应用在直转播技术之上。 # 简介 [go-obs-websocket](https://github.com/christopher-dG/go-obs-websocket)是一个与OB ......
go-obs-websocket 连接器 websocket 144 OBS

Go每日一库之132:wasm与tinygo

WASM 的概念,这几年还是挺火的,新的语言,比如 Rust、Go、Swift 等,都对 WASM 提供支持。相比之下,Go 语言的简单性,使得对 WASM 的支持,使用起来也较简单。本文是目前公开资料中为数不多较完整的教程,希望能对你有帮助。 ## WASM 是什么 标题说:“Golang 中的 ......
tinygo wasm 132

Go每日一库之137:easeprobe(探活工具)

服务探活在现实场景中应用广泛,比如:服务发现、服务负载均衡、服务调度、服务状态监控等。然而,“探活”往往是作为一个功能模块或者组件集成在各个平台系统中。本次要介绍的easeprobe是一款轻量级的,可独立运行的探活工具,利用easeprobe,无需其他系统支持,就可以对多种类型的服务/中间件等探活。 ......
easeprobe 工具 137

Go每日一库之139:cmux (连接多路复用)

如果一个应用需要同时对外提供 HTTP 和 gRPC 服务,通常情况下我们会为两个服务绑定不同的监听端口,而本文要介绍的 cmux 为我们提供了一种连接多路复用的新选择,使用 cmux 可以将不同服务绑定在同一个网络端口上! # 简介 多路复用是个很常见的概念,我们在编写 HTTP 服务时通常会用 ......
cmux 139

Go每日一库之134:fsm(基有限状态机库)

开发中,我们经常会遇到这种情况,服务模块有多种状态,它们有一定的顺序,先后执行,逐步切换。这时,fsm这个库可以帮助我们更好的管理多个状态。 fsm库,它主要基于两个FSM实现,增加了golang版本的实现: - Javascript Finite State Machine, [https://g ......
机库 状态 有限 134 fsm

Go每日一库之138:dive(Docker 镜像分析)

## 什么是 dive? 用于探索 Docker 镜像、每一层中的内容以及发现缩小 Docker/OCI 镜像大小的方法的工具。 ## 安装 dive `go get github.com/wagoodman/dive` ## dive 特性 - 按层分解 Docker 镜像 - 可视化展示每一层变 ......
镜像 Docker dive 138

Go每日一库之129:promu(Prometheus构建发布工具)

众所周知,Go语言中打包命令是 go build。在项目中,你可以单独使用 go build 命令对项目进行编译打包,也可以根据自己的需要,在该命令后加各种参数。prometheus官方为了统一项目(包括 prometheus、alertmanager和各种官方的 exporter)的编译和打包,开 ......
Prometheus 工具 promu 129

Go每日一库之145:MinIO(高性能对象存储)

1. MinIO 简介 MinIO 是一个基于 Go 实现的高性能、兼容 S3 协议的对象存储。它采用 GNU AGPL v3 开源协议,项目地址是 https://github.com/minio/minio,官网是 https://min.io。 它适合存储海量的非结构化的数据,例如说图片、音频 ......
高性能 对象 MinIO 145

Go每日一库之131:caddy(轻量web服务器)

一直以来,我都是使用 Nginx 作为 Web 服务器,但是配置可以说是非常麻烦了。每次我要新开一个域名,都要先使用 [acme.sh](https://github.com/Neilpang/acme.sh) 签发 SSL 证书,然后再写配置,大概要花上 5 分钟的时间。曾经想过写个脚本自动完成这 ......
轻量 服务器 caddy 131 web

Go每日一库之140:Zinc(轻量级搜索引擎)

# ‍项目介绍 [Zinc](https://github.com/zinclabs/zinc) 是一个轻量级替代 Elasticsearch 的开源搜索引擎。 Elasticsearch 真的好用,但是 Elasticsearch 安装和配置也是真的繁琐,后续的一些维护也有一定成本。另外一个 El ......
轻量 轻量级 搜索引擎 引擎 Zinc

Go每日一库之143:servicegroup(进程内优雅管理多个服务)

## 前言 在 go-zero 社区里,经常会有同学问,把 `API gateway` 和 `RPC service` 放在同一个进程内可不可以?怎么弄?有时也会有同学把对外服务和消费队列放在一个进程内。咱们姑且不说此种用法合理与否,因为各个公司的业务场景和开发模式的差异,我们就只来看看此类问题怎么 ......
servicegroup 进程 多个 143

Go每日一库之135:Ent(Facebook 开源 Golang 实体框架)

> 对于**后端开发者**来说,一款好用的框架能够大大提升应用的开发效率。为了降低开发者使用 TiDB 的门槛,**方便开发者快速连接到 TiDB**,我们也在和合作伙伴一起,逐步完善**面向主流开发语言和框架的连接支持**。 ![每日一库之135:Ent(Facebook%20开源%20Golan ......
实体 框架 Facebook Golang 135

Go每日一库之128:podinfo(k8s微服务模板)

## 项目介绍 官方 Github: [Podinfo](https://github.com/stefanprodan/podinfo) Podinfo 是一个用 Go 制作的小型 web 应用程序,它展示了在 Kubernetes 中运行微服务的最佳实践。 它已实现的技术指标(截选自官方 [RE ......
模板 podinfo 128 k8s k8

Go每日一库之133:lo(基于泛型的 Golang lodash 库)

近日,Go 核心开发团队终于宣布了 Go 1.18 正式版本的发布!这是一个大家期待很久的版本!Go 1.18 包含大量新功能:模糊测试、性能改进、工作区等,以及 Go 语言开源以来最大的一次语法特性变更 —— 支持泛型! 支持泛型后,我们便不再需要写如下冗余的代码: ![每日一库之133:lo(基 ......
Golang lodash 133

Go每日一库之109:go-stash

[go-stash](https://github.com/kevwan/go-stash)是一个高效的从Kafka获取,根据配置的规则进行处理,然后发送到ElasticSearch集群的工具。 go-stash有大概logstash 5倍的吞吐性能,并且部署简单,一个可执行文件即可。 > go-s ......
go-stash stash 109 go

Go每日一库之113:retry-go

在微服务架构中,通常会有很多的小服务,小服务之间存在大量 RPC 调用,但时常因为网络抖动等原因,造成请求失败,这时候使用重试机制可以提高请求的最终成功率,减少故障影响,让系统运行更稳定。[retry-go](https://github.com/avast/retry-go) 是一个功能比较完善的 ......
retry-go retry 113 go

Go每日一库之114:go-fuzz

## 推荐 go-fuzz 的背景 我们在日常开发中经常会编写测试和对应的测试用例,大家是否常常会有以下疑惑: - 现有的测试用例是否完全覆盖了各种边界场景?会不会有意料之外的 case? - 代码测试覆盖率都达到 100% 了,代码上线时为啥还会战战兢兢? - 写测试用例太费心费力了,有没有一款能 ......
go-fuzz fuzz 114 go

Go每日一库之115:go-diff

## 简介 纯文本差异对比在许多场景下都有应用,如语音识别技术对识别率的评估,需要将识别后的文本与预期文本之间做差异对比计算;又如我们使用 Git 进行代码提交时,通常会使用git diff来查看这次编辑发生了哪些改动。 这里我们先简单定义一下差异 diff:是指目标文本和源文本之间的区别,也就是将 ......
go-diff diff 115 go

Go每日一库之96:phantomjs

## 1. 什么是Phantomjs [PhantomJS](https://phantomjs.org/)是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何您可以在基于webkit浏览器做 ......
phantomjs

Go每日一库之97:chromedp

## chromedp是什么? [chromedp](https://github.com/chromedp/chromedp)是一个更快、更简单的Golang库用于调用支持Chrome DevTools协议的浏览器,同时不需要额外的依赖(例如Selenium和PhantomJS) > Chrome ......
chromedp

Go每日一库之108:elastic

[elastic](https://github.com/olivere/elastic)是go语言中与ElasticSearch交互使用最多的一个库。 首先要根据ElasticSearch版本选择对应的库: | **Elasticsearch version** | **Elastic versi ......
elastic 108

Go每日一库之112:asynq

# 什么是Asynq [Asynq](https://github.com/hibiken/asynq)是一个go语言实现的分布式任务队列和异步处理库,基于redis,类似sidekiq和celery,他具有以下特点: - 保证至少执行一次任务 - 持久化 - 失败重试 - worker崩溃自动恢复 ......
asynq 112

Go每日一库之118:netlink(内核通信)

# 什么是netlink? netlink 是 Linux 系统里用户态程序、内核模块之间的一种 IPC 方式,特别是用户态程序和内核模块之间的 IPC 通信。比如在 Linux 终端里常用的 ip 命令,就是使用 netlink 去跟内核进行通信的。例如想在golang代码中实现ip link a ......
内核 netlink 118

Go每日一库之125:ast(抽象语法树)

## 写在前面 当你对GoLang AST感兴趣时,你会参考什么?文档还是源代码? 虽然阅读文档可以帮助你抽象地理解它,但你无法看到API之间的关系等等。 如果是阅读整个源代码,你会完全看懂,但你想看完整个代码我觉得您应该会很累。 因此,本着高效学习的原则,我写了此文,希望对您能有所帮助。 让我们轻 ......
语法 125 ast

Go每日一库之117:gopacket(网络数据抓包)

## gopacket是什么? gopacket是google出品的golang三方库,质量还是靠的住,项目地址为:[github.com/google/gopacket](https://github.com/google/gopacket) gopacket到底是什么呢?是个抓取网络数据包的库, ......
gopacket 数据 网络 117