Skip to content

Commit

Permalink
update yellow pages
Browse files Browse the repository at this point in the history
  • Loading branch information
OutOfBedlam committed Sep 23, 2023
1 parent d28920f commit af49baa
Show file tree
Hide file tree
Showing 4 changed files with 293 additions and 6 deletions.
7 changes: 4 additions & 3 deletions content/_index.md
@@ -1,10 +1,11 @@
---
type: docs
BookToC: false
---

# A Developer.
# I'm A Developer.

## Speaking...
## {{< icons/icon vendor=fas name=laptop-code color=dark-gray >}} Speaking in ...
{{< columns >}}
### Curently
- Go
Expand All @@ -24,7 +25,7 @@ type: docs
- C
{{< /columns >}}

## Recently
## {{< icons/icon vendor=far name=clock color=dark-gray >}} Recently

{{< columns >}}

Expand Down
230 changes: 230 additions & 0 deletions content/docs/yellowpages/golang/_index.md
Expand Up @@ -5,12 +5,34 @@ title: Go Libraries

# Go Libraries

## AI & ML

{{< details title="lingua-go" open=true >}}
The most accurate natural language detection library for Go, suitable for long and short text alike.
It tells you which language some text is written in.
https://github.com/pemistahl/lingua-go
{{< /details >}}
<br/>

## Cache

{{< details title="go-generic-cache" open=true >}}
A key:value store/cache library written in Go generics. LRU, LFU, FIFO, MRU, Clock support.
https://github.com/Code-Hex/go-generics-cache
{{< /details >}}
<br/>

{{< details title="bigcache" open=true >}}
Efficient cache for gigabytes of data written in Go.
https://github.com/allegro/bigcache
{{< /details >}}
<br/>

{{< details title="clfu" open=true >}}
Implementation of Constant Time LFU (least frequently used) cache in Go with concurrency safety.
https://github.com/Narasimha1997/clfu
{{< /details >}}
<br/>

## Compiler & Runtime

Expand All @@ -26,12 +48,25 @@ https://github.com/tetratelabs/wazero
{{< /details >}}
<br/>

{{< details title="ebitengine/purego" open=true >}}
A library for calling C functions from Go without Cgo.
https://github.com/ebitengine/purego
{{< /details >}}
<br/>

## Data structure

{{< details title="GoDS" open=true >}}
GoDS (Go Data Structures) - Sets, Lists, Stacks, Maps, Trees, Queues, and much more
https://github.com/emirpasic/gods
{{< /details >}}
<br/>

{{< details title="go-merkletree" open=true >}}
Go Merkle Tree. High performance, Supporting parallel run, OpenZeppelin sorting pairs.
https://github.com/txaty/go-merkletree
{{< /details >}}
<br/>

## Database

Expand Down Expand Up @@ -61,6 +96,49 @@ https://github.com/jeroenrinzema/psql-wire
{{< /details >}}
<br/>

{{< details title="slashbase" open=true >}}
Modern database IDE for your dev & data workflows. Supports MySQL, PostgreSQL & MongoDB.
https://github.com/slashbaseide/slashbase
{{< /details >}}
<br/>

{{< details title="pocketbase" open=true >}}
Open Source realtime backend in 1 file
https://github.com/pocketbase/pocketbase
{{< /details >}}
<br/>

{{< details title="rosedb" open=true >}}
Lightweight, fast and reliable key/value storage engine based on Bitcask.
https://github.com/rosedblabs/rosedb
{{< /details >}}
<br/>

{{< details title="milvus" open=true >}}
A cloud-native vector database, storage for next generation AI applications.
Milvus is an open-source vector database built to power embedding similarity search and AI applications.
https://github.com/milvus-io/milvus
{{< /details >}}
<br/>

{{< details title="column" open=true >}}
High-performance, columnar, in-memory store with bitmap indexing in Go
https://github.com/kelindar/column
{{< /details >}}
<br/>

{{< details title="LinDB" open=true >}}
Distributed time-series db
https://lindb.io
{{< /details >}}
<br/>

{{< details title="m3db" open=true >}}
M3 monorepo - Distributed TSDB, Aggregator and Query Engine, Prometheus Sidecar, Graphite Compatible, Metrics Platform
https://github.com/m3db/m3
{{< /details >}}
<br/>

## Datetime

{{< details title="carbon" open=true >}}
Expand All @@ -69,6 +147,28 @@ https://github.com/golang-module/carbon
{{< /details >}}
<br/>

## Event & Message driven

{{< details title="watermil" open=true >}}
Go library for building event-driven applications.
https://watermill.io
{{< /details >}}
<br/>

{{< details title="RxGo" open=true >}}
Reactive Extensions for the Go language.
https://github.com/reactivex/rxgo
{{< /details >}}
<br/>

## Interpreter & Evaluation

{{< details title="expr" open=true >}}
Expression language and expression evaluation for Go
https://github.com/antonmedv/expr
{{< /details >}}
<br/>

## Game

{{< details title="cardrank" open=true >}}
Expand All @@ -85,6 +185,41 @@ https://github.com/maxence-charriere/go-app
{{< /details >}}
<br/>

{{< details title="gio ui" open=true >}}
Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly.
https://gioui.org
{{< /details >}}
<br/>

## Kafka

{{< details title="kafka-go" open=true >}}
Kafka library in Go
https://github.com/segmentio/kafka-go
- sarama, which is by far the most popular but is quite difficult to work with. It is poorly documented, the API exposes low level concepts of the Kafka protocol, and it doesn't support recent Go features like contexts. It also passes all values as pointers which causes large numbers of dynamic memory allocations, more frequent garbage collections, and higher memory usage.
- confluent-kafka-go is a cgo based wrapper around librdkafka, which means it introduces a dependency to a C library on all Go code that uses the package. It has much better documentation than sarama but still lacks support for Go contexts.
- goka is a more recent Kafka client for Go which focuses on a specific usage pattern. It provides abstractions for using Kafka as a message passing bus between services rather than an ordered log of events, but this is not the typical use case of Kafka for us at Segment. The package also depends on sarama for all interactions with Kafka.
{{< /details >}}
<br/>

{{< details title="sarama" open=true >}}
Sarama is a Go library for Apache Kafka.
https://github.com/IBM/sarama
{{< /details >}}
<br/>

{{< details title="confluent-kafka-go" open=true >}}
Confluent's Apache Kafka Golang client
https://github.com/confluentinc/confluent-kafka-go
{{< /details >}}
<br/>

{{< details title="goka" open=true >}}
Goka is a compact yet powerful distributed stream processing library for Apache Kafka written in Go.
https://github.com/lovoo/goka
{{< /details >}}
<br/>

## Log

{{< details title="tint" open=true >}}
Expand All @@ -99,6 +234,18 @@ https://github.com/charmbracelet/log
{{< /details >}}
<br/>

{{< details title="tail" open=true >}}
Go package for reading from continously updated files (tail -f)
https://github.com/hpcloud/tail
{{< /details >}}
<br/>

{{< details title="zincsearch" open=true >}}
ZincSearch . A lightweight alternative to elasticsearch that requires minimal resources, written in Go.
https://github.com/zincsearch/zincsearch
{{< /details >}}
<br/>

## macOS

{{< details title="gon" open=true >}}
Expand Down Expand Up @@ -141,6 +288,64 @@ https://github.com/gobwas/ws
{{< /details >}}
<br/>

{{< details title="torrent" open=true >}}
Full-featured BitTorrent client package and utilities
https://github.com/anacrolix/torrent
{{< /details >}}
<br/>

{{< details title="loxilb" open=true >}}
eBPF based cloud-native load-balancer. Powering K8s|Edge|5G|IoT|XaaS Apps.
https://github.com/loxilb-io/loxilb
{{< /details >}}
<br/>

{{< details title="natiu-mqtt" open=true >}}
A dead-simple, extensible MQTT implementation well suited for embedded systems.
https://github.com/soypat/natiu-mqtt
{{< /details >}}
<br/>

{{< details title="comqtt" open=true >}}
A lightweight, high-performance go mqtt server(v3.0|v3.1.1|v5.0) supporting distributed cluster
https://github.com/wind-c/comqtt
{{< /details >}}
<br/>

{{< details title="easytcp" open=true >}}
✨ 🚀 EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.
https://github.com/DarthPestilane/easytcp
{{< /details >}}
<br/>

## OpenStreetMap

{{< details title="openmaptiles" open=true >}}
OpenMapTiles Vector Tile Schema Implementation
https://github.com/openmaptiles/openmaptiles
{{< /details >}}
<br/>

{{< details title="tegola-omt" open=true >}}
OpenMapTiles import procedure and configuration for the Tegola tileserver.
https://github.com/tile-fund/tegola-omt
{{< /details >}}
<br/>

## Security

{{< details title="life4/enc" open=true >}}
🔑🔒 A modern and friendly CLI alternative to GnuPG: generate and download keys, encrypt, decrypt, and sign text and files, and more.
https://github.com/life4/enc
{{< /details >}}
<br/>

{{< details title="go-nanoid" open=true >}}
Nano ID for Go
https://github.com/jaevor/go-nanoid
{{< /details >}}
<br/>

## Terminal

{{< details title="console" open=true >}}
Expand All @@ -166,6 +371,25 @@ https://github.com/pterm/pterm
{{< /details >}}
<br/>

{{< details title="go-pretty" open=true >}}
Table-writer and more in golang!
https://github.com/jedib0t/go-pretty
{{< /details >}}
<br/>

{{< details title="artty" open=true >}}
Art for your TTY.
https://github.com/mjwhitta/artty
{{< /details >}}
<br/>

{{< details title="banner" open=true >}}
Colorful Banners
- figlet : displays the banners
- lolcat : colorizes the banners
{{< /details >}}
<br/>

## Utilities

{{< details title="go-git" open=true >}}
Expand Down Expand Up @@ -198,4 +422,10 @@ https://github.com/terrastruct/d2
🎨 The adorable charts library for Golang
https://github.com/go-echarts/go-echarts
{{< /details >}}
<br/>

{{< details title="uPlot" open=true >}}
📈 A small, fast chart for time series, lines, areas, ohlc & bars
https://github.com/leeoniya/uPlot
{{< /details >}}
<br/>
57 changes: 57 additions & 0 deletions content/posts/2023/go_chunked_response.md
@@ -0,0 +1,57 @@
---
date: 2023-09-23
categories:
- programming
tags:
- go
title: "Go gin chunked response"
draft: true
---

```go
import (
"fmt"
"log"
"net/http"
"time"

"github.com/gin-gonic/gin"
)

func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
r := gin.Default()
r.GET("/test_stream", func(c *gin.Context) {
w := c.Writer
header := w.Header()
header.Set("Transfer-Encoding", "chunked")
header.Set("Content-Type", "text/html")
w.WriteHeader(http.StatusOK)
w.Write([]byte(`
<html>
<body>
`))
w.(http.Flusher).Flush()
for i := 0; i < 10; i++ {
w.Write([]byte(fmt.Sprintf(`
<h1>%d</h1>
`, i)))
w.(http.Flusher).Flush()
time.Sleep(time.Duration(1) * time.Second)
}
w.Write([]byte(`
</body>
</html>
`))
w.(http.Flusher).Flush()
})

r.Run("127.0.0.1:8080")
}

/*
browser test url:
http://127.0.0.1:8080/test_stream
*/
```
5 changes: 2 additions & 3 deletions content/posts/_index.md
@@ -1,9 +1,8 @@
---
menu:
after:
name: blog
name: posts
weight: 5
title: Blog
section: blog
title: Posts
---

0 comments on commit af49baa

Please sign in to comment.