Golang News http://golangnews.com Jobs, Code, Videos and News for Go hackers - everything about the go programming language Wed, 20 Jan 2021 08:04:00 +0000 A Better sync.Pool for creating high-performance applications 4 points posted by pj https://github.com/rocketlaunchr/go-pool 4518 Thu, 14 Jan 2021 20:26:00 +0000 Simple but effective in-memory key-value storage with TTL for each record. There is a lot of great in-memory databases written in golang but this tiny library will be suitable for specific use-cases when you need to have TTL per record and nothing more. 3 points posted by cheshir https://github.com/cheshir/ttlcache 4517 Wed, 13 Jan 2021 12:55:00 +0000 QueryCSV enables you to load CSV files and manipulate using SQL queries then export it to CSV file 4 points posted by m7shapan https://github.com/m7shapan/querycsv 4513 Fri, 08 Jan 2021 01:24:00 +0000 Re-txt: convert from JSON/YAML/toml/CSV to YAML/JSON/toml 3 points posted by Mohammed Al Ashaal https://github.com/alash3al/re-txt 4515 Sat, 09 Jan 2021 09:23:00 +0000 a2a - json/yaml, toml/json, hcl/json, csv/json and vs converter! 3 points posted by Mohammed Al Ashaal https://github.com/alash3al/a2a 4514 Fri, 08 Jan 2021 13:25:00 +0000 Embedding files into go executables at runtime With all the talk about go:embed, I wanted to show my own embedding library that is based on a different concept.<div>ember is designed to attach arbitrary files to a go executable <b>after it has already been built</b> - without needing a go tool chain or any other prerequisites.</div><div><br></div><div>The main usecase is to attach configuration files and zip archives into an already-compiled executable in a completely cross-plattform way.<br><br></div><div>Cross-compile your executable once on Jenkins for windows.</div><div>Later in production, use your Linux backend to attach a config.json to fully customize the executable for a given user or environment.</div><div>Or just create some self-extracting archives for and from any platform.</div><div><br></div> 3 points posted by maja42 https://github.com/maja42/ember 4511 Tue, 05 Jan 2021 19:34:00 +0000 bitcaskfs - A FUSE filesystem for the Bitcask database 5 points posted by James Mills https://github.com/prologic/bitcaskfs 4500 Fri, 11 Dec 2020 15:41:00 +0000 baetyl - extend cloud computing, data and service seamlessly to edge devices. 3 points posted by kenny https://github.com/baetyl/baetyl 4508 Wed, 23 Dec 2020 14:57:00 +0000 box - πŸ“¦ A command-line utility for creating Linux containers, sandboxing a processes <h1>box</h1> <p><g-emoji class="g-emoji" alias="package" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4e6.png" style="box-sizing: border-box; font-family: &quot;Apple Color Emoji&quot;, &quot;Segoe UI&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;; font-size: 1.25em; line-height: 1; vertical-align: -0.075em;">πŸ“¦</g-emoji>&nbsp;A command-line utility (non-daemon) for creating Linux containers, sandboxing a processes written in Go.</p> <p>It basically is a tiny version of docker, it uses neither <a href="https://containerd.io/" rel="nofollow" style="box-sizing: border-box; color: var(--color-text-link);">containerd</a>&nbsp;nor <a href="https://github.com/opencontainers/runc" style="box-sizing: border-box; color: var(--color-text-link);">runc</a>. Only a set of the Linux features.</p><blockquote style="box-sizing: border-box; margin: 0px 0px 16px; padding-right: 1em; color: var(--color-text-tertiary); border-left: 0.25em solid var(--color-markdown-blockquote-border); font-family: -apple-system, system-ui, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; background-color: rgb(255, 255, 255);"> <p>NOTE: This is a heavily modified fork (<em style="box-sizing: border-box;">of was</em>) of <a href="https://github.com/0xc0d/vessel" style="box-sizing: border-box; color: var(--color-text-link);">vessel</a>&nbsp;and a reimplementation of the <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0.2em 0.4em; margin: 0px; background-color: var(--color-markdown-code-bg); border-radius: 6px;">box</code>&nbsp;utility from <a href="https://github.com/prologuc/ulinux" style="box-sizing: border-box; color: var(--color-text-link);">ulinux</a>.</p></blockquote> <h2><a id="user-content-features" class="anchor" aria-hidden="true" href="https://github.com/prologic/box#features" style="box-sizing: border-box; color: var(--color-text-link); float: left; padding-right: 4px; margin-left: -20px; line-height: 1;"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Features</h2> <p><code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0.2em 0.4em; margin: 0px; background-color: var(--color-markdown-code-bg); border-radius: 6px;">box</code>&nbsp;supports:</p><ul style="box-sizing: border-box; padding-left: 2em; margin-top: 0px; margin-bottom: 16px; color: rgb(36, 41, 46); font-family: -apple-system, system-ui, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;; font-size: 16px; background-color: rgb(255, 255, 255);"><li style="box-sizing: border-box;">Control Groups&nbsp;for resource restriction (CPU, Memory, Swap, PIDs)</li><li style="box-sizing: border-box; margin-top: 0.25em;">Namespace&nbsp;for global system resources isolation (Mount, UTS, Network, IPS, PID)</li><li style="box-sizing: border-box; margin-top: 0.25em;">Union File System&nbsp;for branches to be overlaid in a single coherent file system. (OverlayFS)</li><li style="box-sizing: border-box; margin-top: 0.25em;">Isolated Networking&nbsp;each contianer get its own networking and ip address automatically (IPAM)</li> </ul><h2><a id="user-content-install" class="anchor" aria-hidden="true" href="https://github.com/prologic/box#install" style="box-sizing: border-box; color: var(--color-text-link); float: left; padding-right: 4px; margin-left: -20px; line-height: 1;"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Install</h2> <p>If you have a Go development environment setup with <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0.2em 0.4em; margin: 0px; background-color: var(--color-markdown-code-bg); border-radius: 6px;">$GOPATH/bin/</code>&nbsp;in your <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0.2em 0.4em; margin: 0px; background-color: var(--color-markdown-code-bg); border-radius: 6px;">$PATH</code>&nbsp;the following will just workβ„’ <g-emoji class="g-emoji" alias="grinning" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f600.png" style="box-sizing: border-box; font-family: &quot;Apple Color Emoji&quot;, &quot;Segoe UI&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;; font-size: 1.25em; line-height: 1; vertical-align: -0.075em;">πŸ˜€</g-emoji></p><pre lang="#!console" style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 16px; overflow-wrap: normal; padding: 16px; line-height: 1.45; border-radius: 6px; color: rgb(36, 41, 46);"><code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0px; margin: 0px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-radius: 6px; word-break: normal; white-space: pre; border: 0px; display: inline; overflow: visible; line-height: inherit; overflow-wrap: normal;">go get -u github.com/prologic/box </code></pre> <p>Otherwise you can build from source using <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0.2em 0.4em; margin: 0px; background-color: var(--color-markdown-code-bg); border-radius: 6px;">git</code>&nbsp;(<em style="box-sizing: border-box;">You still need the Go compiler</em>):</p><pre lang="#!console" style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; margin-top: 0px; margin-bottom: 16px; overflow-wrap: normal; padding: 16px; line-height: 1.45; border-radius: 6px; color: rgb(36, 41, 46);"><code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0px; margin: 0px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-radius: 6px; word-break: normal; white-space: pre; border: 0px; display: inline; overflow: visible; line-height: inherit; overflow-wrap: normal;">git clone https://github.com/prologic/box.git cd box make </code></pre><div><code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, monospace; font-size: 13.6px; padding: 0px; margin: 0px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-radius: 6px; word-break: normal; white-space: pre; border: 0px; display: inline; overflow: visible; line-height: inherit; overflow-wrap: normal;">...</code></div> <h3><a id="user-content-prebuilt-binaries" class="anchor" aria-hidden="true" href="https://github.com/prologic/box#prebuilt-binaries" style="box-sizing: border-box; color: var(--color-text-link); float: left; padding-right: 4px; margin-left: -20px; line-height: 1;"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a></h3> 4 points posted by James Mills https://github.com/prologic/box 4493 Mon, 23 Nov 2020 15:56:00 +0000 A tiny mandelbrot set renderer in Go 4 points posted by gopher https://github.com/kochampsy/fractal 4492 Sun, 22 Nov 2020 16:42:00 +0000 maddy - βœ‰οΈ Composable all-in-one mail server. 4 points posted by tomf https://github.com/foxcpp/maddy 4491 Sun, 22 Nov 2020 08:48:00 +0000 Baker is a high performance, composable and extendable data-processing pipeline for the big data era 3 points posted by kenny https://github.com/adroll/baker 4499 Tue, 08 Dec 2020 09:35:00 +0000 kube-linter - checks Kubernetes YAML files and Helm charts KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices. 3 points posted by kenny https://github.com/stackrox/kube-linter 4496 Tue, 01 Dec 2020 12:53:00 +0000 k6 - A modern load testing tool, using Go and JavaScript - https://k6.io 3 points posted by gopher https://github.com/loadimpact/k6 4494 Sat, 28 Nov 2020 08:09:00 +0000 Code: new version of opinionated Ansible role to install Golang New minor releases added 2 points posted by Sascha Andres https://github.com/sascha-andres/ansible-role-golang/releases/tag/v1.15.6 4501 Sat, 12 Dec 2020 12:15:00 +0000 TamaGo - bare metal Go for ARM SoCs 6 points posted by kenny https://github.com/f-secure-foundry/tamago 4455 Thu, 24 Sep 2020 08:36:00 +0000 go-edlib - Update: Cosine similarity, Fuzzy search, Benchmarks & More! #go #golang #opensource <p>Go-Edlib is a new open-source library for Golang that implements most popular edit distance algorithms and soon all of them! Currently, it includes: Levenshtein, LCS, Hamming, Damerau-Levenshtein (OSA and Adjacent transpositions algorithms), Jaro/Jaro-Winkler, Cosine similarity.<br style="box-sizing: border-box;">All these algorithms have been implemented in such a way as to be fully compatible with Unicode</p> <p>It also includes fuzzy search algorithms based on edit distance and few others string comparisons functions.</p> <p>I'm actively looking for feedback and/or contributions to improve this library or to have new functionality ideas to add! :)<br></p> 4 points posted by hbollon https://github.com/hbollon/go-edlib/releases 4480 Thu, 05 Nov 2020 18:12:00 +0000 A Go unikernel running on x86 bare metal 4 points posted by gopher https://github.com/icexin/eggos 4475 Fri, 23 Oct 2020 19:14:00 +0000 goyave - 🍐 Elegant Golang Web Framework 6 points posted by tomf https://github.com/System-Glitch/goyave 4446 Fri, 11 Sep 2020 13:18:00 +0000 elsa - ❄️ Elsa is a minimal, fast and secure runtime for Javascript and Typescript written in Go 5 points posted by kenny https://github.com/elsaland/elsa 4460 Tue, 29 Sep 2020 13:20:00 +0000 simple-subscribe - collect emails with a subscription box Collect emails with a subscription box you can add to any page and build your own independent subscriber base. 3 points posted by kenny https://github.com/victoriadrake/simple-subscribe 4483 Sun, 15 Nov 2020 08:23:00 +0000 PGkebab - Golang wrapper over PostgreSQL driver PostgreSQL helper, making PostgreSQL as simple as GOlang.<div><br><div>Replace your heavy ORM or dense routines with simple SQL queries</div><div><br></div><div><pre>if row, err := db.GetOne("SELECT name, status_id FROM customers WHERE id=$1",customerID); err == nil {<br>&nbsp; &nbsp; fmt.Println("The customer", row.String("name"),"has status", row.Int64("status_id"))<br>}</pre></div></div> 3 points posted by miguel https://github.com/miguelpragier/pgkebab 4481 Tue, 10 Nov 2020 11:59:00 +0000 statsviz - Instant live visualization of your Go application runtime statistics in the browser 3 points posted by kenny https://github.com/arl/statsviz 4476 Fri, 23 Oct 2020 20:49:00 +0000 Shotizam analyze the size of Go binaries by bradfitz 9 points posted by gopher https://github.com/bradfitz/shotizam 4333 Fri, 01 May 2020 15:56:00 +0000 NoiseTorch - Real-time microphone noise suppression on Linux. 7 points posted by kenny https://github.com/lawl/NoiseTorch 4403 Sat, 18 Jul 2020 21:25:00 +0000 πŸš€ fgprof is a sampling Go profiler for On-CPU as well as Off-CPU (e.g. I/O) time fgprof - πŸš€ fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together. 7 points posted by kenny https://github.com/felixge/fgprof 4388 Wed, 24 Jun 2020 17:54:00 +0000 apikit - Generates Golang client and server based on OpenAPI2 (swagger) definitions 5 points posted by Marcel Franke https://github.com/ExperienceOne/apikit 4399 Wed, 08 Jul 2020 07:50:00 +0000 Code: new version of oppinionated Ansible role to install Golang Support for v1.15.2 and v1.14.9 4 points posted by Sascha Andres https://github.com/sascha-andres/ansible-role-golang/releases/tag/v1.15.2 4441 Thu, 10 Sep 2020 14:49:00 +0000 Excelize 2.3.1 is Released – Go library for spreadsheet (Excel) files #excelize #golang #go #excel Excelize 2.3.1 is Released – Go library for spreadsheet (Excel) files, now support to open the spreadsheet with password protection 3 points posted by xuri https://github.com/xuri/excelize 4453 Tue, 22 Sep 2020 17:22:00 +0000 go-edlib - String comparison and edit distance library compatible Unicode Featuring : Levenshtein, LCS, Hamming, Damerau-Levenshtein, Jaro, etc.<div>All contributions and/or feedback are welcome ! </div> 3 points posted by hbollon https://github.com/hbollon/go-edlib 4448 Sat, 12 Sep 2020 11:18:00 +0000 Code: new version of my opinionated Golang role for Ansible Support for the latest two patch versions added 2 points posted by Sascha Andres https://github.com/sascha-andres/ansible-role-golang/releases/tag/v1.15.5 4485 Tue, 17 Nov 2020 16:49:00 +0000 Code: new version of an opinionated Ansible role to install Go This time adding support for 1.15.5 and 1.14.10 2 points posted by Sascha Andres https://github.com/sascha-andres/ansible-role-golang/releases/tag/v1.15.3 4471 Fri, 16 Oct 2020 14:35:00 +0000 Go Best Practices at Joyent by Sean Chittenden This is now abandoned and contains some defunct references (GOPATH for example), but is of historical interest I think.&nbsp; 13 points posted by kenny https://github.com/joyent/rfd/blob/master/rfd/0106/README.adoc 3870 Sat, 23 Mar 2019 17:08:00 +0000 Proposal: A built-in Go error check function, try #errors <p>We propose a new built-in function called <code>try</code>, designed specifically to eliminate the boilerplate <code>if</code>&nbsp;statements typically associated with error handling in Go. No other language changes are suggested. We advocate using the existing <code>defer</code>&nbsp;statement and standard library functions to help with augmenting or wrapping of errors. This minimal approach addresses most common scenarios while adding very little complexity to the language. The <code>try</code>&nbsp;built-in is easy to explain, straightforward to implement, orthogonal to other language constructs, and fully backward-compatible. It also leaves open a path to extending the mechanism, should we wish to do so in the future.</p> 12 points posted by kenny https://github.com/golang/proposal/blob/master/design/32437-try-builtin.md#proposal-a-built-in-go-error-check-function-try 3992 Wed, 05 Jun 2019 05:52:00 +0000 bigo - big-O time complexity <div>This little library helps capturing O for N and draw plots out of it.<br></div><div>It can be used to performance check functions or APIs on varying input sizes.<br></div> 9 points posted by Nils https://github.com/Oppodelldog/bigo 4146 Sun, 22 Sep 2019 16:20:00 +0000 edwood - Go version of Plan9 Acme Editor 8 points posted by kenny https://github.com/rjkroege/edwood 4295 Tue, 14 Apr 2020 16:31:00 +0000 go-gopher - Gopher (RFC 1436) protocol library for Go supporting both client and server Ironically the first thing I wrote in Go in anger to learn the language was an RFC 1436 Gopher protocol library for implementing clients and servers! You know that thing that existed before the Web that apparently still exists today?! I even went further and created prologic/gopherproxy (online at https://gopher.mills.io) and prologic/gopherclient - a cross-platform Desktop Gopher client. Enjoy! :D 8 points posted by James Mills https://github.com/prologic/go-gopher 4111 Tue, 10 Sep 2019 12:33:00 +0000 Google - Exposure Notification Reference Server for Covid-19 6 points posted by kenny https://github.com/google/exposure-notifications-server 4353 Fri, 15 May 2020 13:11:00 +0000 regogo - JSON query library, based on Rego 6 points posted by kenny https://github.com/itaysk/regogo 4306 Sat, 18 Apr 2020 17:40:00 +0000 A scalable 2d design language for laser cutters in Go HFD is meant to make it easier to create designs which are parameterized (i.e. one design where you could easily change the width, height, thickness, ect). And make it simpler to split and layout designs across multiple pieces of material. 6 points posted by kenny https://github.com/dustismo/heavyfishdesign 4291 Sun, 12 Apr 2020 08:58:00 +0000 tube - a simple self hosted video sharing app with builtin transcoder and rss feed. <div>a Youtube-like (without censorship and features you don't need!) Video Sharing App</div><div>&nbsp; written in Go which also supports automatic transcoding to MP4 H.265 AAC, multiple collections and</div><div>&nbsp; RSS feed.</div> 6 points posted by James Mills https://github.com/prologic/tube 4269 Mon, 23 Mar 2020 12:46:00 +0000 goukv - an abstraction layer for golang based key-value stores 6 points posted by Mohammed Al Ashaal https://github.com/alash3al/goukv 4259 Sun, 23 Feb 2020 21:17:00 +0000 readline - Readline is a pure go(golang) implementation for GNU-Readline kind library 6 points posted by Everton Marques https://github.com/chzyer/readline 4223 Thu, 19 Dec 2019 23:25:00 +0000 erris - Linter that checks errors.Is and errors.As usage 6 points posted by romanyx https://github.com/romanyx/erris 4198 Tue, 26 Nov 2019 15:17:00 +0000 Code: go-dlr - Detect Local Replacements Just pushed go.mod with a local replacement? Failed CI because of this? Hacked out a small tool to detect 6 points posted by Sascha Andres https://github.com/sascha-andres/go-dlr 4176 Tue, 29 Oct 2019 14:33:00 +0000 sql2slack - send sql results periodically to slack 5 points posted by Mohammed Al Ashaal https://github.com/alash3al/sql2slack 4391 Sun, 28 Jun 2020 20:43:00 +0000 go-fault - Fault injection library in Go using standard http middleware 5 points posted by kenny https://github.com/github/go-fault 4363 Sun, 24 May 2020 09:09:00 +0000 gofpher - a collection of functional programming constructs for go 5 points posted by lolly https://github.com/asteris-llc/gofpher 4357 Mon, 18 May 2020 10:00:00 +0000 molecule - Molecule is a Go library for parsing protobufs in an efficient and zero-allocation manner 5 points posted by kenny https://github.com/richardartoul/molecule 4273 Sun, 29 Mar 2020 18:48:00 +0000 jql - Easy JSON Query Processor with a Lispy syntax in Go 5 points posted by kenny https://github.com/cube2222/jql 4236 Tue, 07 Jan 2020 19:39:00 +0000