[Awesome Go] Use configuration package to parse Human-Optimized Config Object Notation (HOCON)
go-akka/configuration
configuration is a package to parse Human-Optimized Config Object Notation (HOCON).
configuration is a package to parse Human-Optimized Config Object Notation (HOCON).
The yaml package enables Go programs to comfortably encode and decode YAML values. It was developed within Canonical as part of the juju project, and is based on a pure Go port of the well-known libyaml C library to parse and generate YAML data quickly and reliably.
Standard go get:
1 | $ go get -u gopkg.in/yaml.v2 |
1 | package main |
This example will generate the following output:
1 | --- t: |
yaml:",flow"
[1] GitHub - go-yaml/yaml: YAML support for the Go language. - https://github.com/go-yaml/yaml
Package strings
implements simple functions to manipulate UTF-8 encoded strings.
For information about UTF-8 strings in Go, see strings - The Go Programming Language - https://blog.golang.org/strings.
As far as I know, sshuttle is the only program that solves the following common case:
Your client machine (or router) is Linux, FreeBSD, or MacOS.
You have access to a remote network via ssh.
You don’t necessarily have admin access on the remote network.
The remote network has no VPN, or only stupid/complex VPN protocols (IPsec, PPTP, etc). Or maybe you are the admin and you just got frustrated with the awful state of VPN tools.
You don’t want to create an ssh port forward for every single host/port on the remote network.
You hate openssh’s port forwarding because it’s randomly slow and/or stupid.
You can’t use openssh’s PermitTunnel feature because it’s disabled by default on openssh servers; plus it does TCP-over-TCP, which has terrible performance.
logrusHelper is a Helper arround Logrus to wrap with spf13/Viper
to load configuration with fangs!
Go package xstrings
is a collection of string functions, which are widely used in other languages but absent in Go package strings
.
All functions are well tested and carefully tuned for performance.
The fantastic ORM library for Golang aims to be developer friendly.
Full-Featured ORM
Associations (Has One, Has Many, Belongs To, Many To Many, Polymorphism, Single-table inheritance)
Hooks (Before/After Create/Save/Update/Delete/Find)
Eager loading with Preload, Joins
Transactions, Nested Transactions, Save Point, RollbackTo to Saved Point
Context, Prepared Statement Mode, DryRun Mode
Batch Insert, FindInBatches, Find/Create with Map, CRUD with SQL Expr and Context Valuer
SQL Builder, Upsert, Locking, Optimizer/Index/Comment Hints, Named Argument, SubQuery
Composite Primary Key, Indexes, Constraints
Auto Migrations
Logger
Extendable, flexible plugin API: Database Resolver (Multiple Databases, Read/Write Splitting) / Prometheus…
Every feature comes with tests
Developer Friendly
1 | $ go get -u gorm.io/gorm |
1 | package main |
[2] GORM - The fantastic ORM library for Golang, aims to be developer friendly. - https://gorm.io/
This package is meant to make copying of structs to/from others structs a bit easier.
Nested structures, embedded types, pointers, sql null types are supported.
Logrus is a structured logger for Go (golang), completely API compatible with the standard library logger.
Logrus is in maintenance-mode. We will not be introducing new features. It’s simply too hard to do in a way that won’t break many people’s projects, which is the last thing you want from your Logging library (again…).
Wire is a code generation tool that automates connecting components using dependency injection.