Skip to content

Latest commit

 

History

726 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goexample

Go Concurrency APIs WebAssembly Ebitengine gRPC Docker Kubernetes AWS Kafka Redis

The Portuguese documentation is available in README.pt-BR.md.

About this repository

This is a long-running Go notebook. It contains small experiments, tests, prototypes, and implementation ideas built while learning the language and preparing larger projects.

Some examples are only a few lines long. Others are complete experiments with temporary dependencies, servers, clients, benchmarks, or external services.

The repository is not a single library and it is not meant to be built as one project. Each directory has its own purpose and should be read and run independently.

The current tree is closer to a personal laboratory than to a conventional application repository.

Repository snapshot

These numbers are approximate and intentionally use a plus sign. The repository keeps growing as new experiments are added.

Scope Size
Top level directories 190+
Go source files 990+
Local README files 50+
Main areas Language, concurrency, web, cloud, data, performance, graphics, and systems

What you can find here

Area Examples
Language foundations variable, functions, interface, generics, pointer, parsejson, and gogenerate
Concurrency goroutine, channel, context, patterns, sync, race, and memoization
Web and APIs api, api-simple, gin-gonic, echo, websocket, http2, socket, grpc, and swagger
Cloud and messaging aws-ec2, aws-s3, aws-sqs, aws-sns, google.cloud, kafka, queue.examples, and kubernetes
Data and persistence redis, mongodb, postgres, sqlite3, boltdb, cache-memory, crypt, and marshal
Algorithms and performance benchmark, dijkstra, performance, gc, memory, pprof.go, and ordenacao.quicksort
Graphics and media ebiten, webassembly, gocv.video, go-qrcode, image, and upload
Security and architecture jwt, authbasic, go-tls-ssl, circuit-breaker, patherns, and mocktest

A few starting points

How the repository is organized

The repository intentionally does not commit go.mod or go.sum files. Each example owns its source code and can create a temporary module when external dependencies are needed.

Before running an example, enter its directory and check its local files. The helper script creates an isolated temporary module and removes it when the command finishes.

./scripts/run-example.sh path/to/example

You can pass another command after the example directory.

./scripts/run-example.sh path/to/example go test ./...

For a standard library example, module mode can also be disabled directly.

cd path/to/package
GO111MODULE=off go test .

Dependency policy

Dependency manifests are deliberately local and temporary. This includes Go, Node.js, PHP, and Java examples. The repository stays focused on source code and avoids keeping stale experiment dependencies in the dependency graph.

The helper script runs go mod tidy inside a temporary directory for Go examples. It never writes a module file into the repository. Other languages should follow the same local environment principle.

Project style

The examples favor clarity and experimentation over a single shared architecture. Some directories are modern, some are historical, and some intentionally show a low level approach.

Read the local code and README before assuming that an example is production ready. External services may require credentials, local containers, or additional configuration.

Contributions and learning

This repository started as a personal way to learn Go through practice. If an example helps you understand a concept, use it as a starting point and adapt it to your own project.

The most valuable next step for any experiment is usually a small test that records the behavior being explored.

About

Various examples of tests I do on a daily basis before implementing golang

Topics

Resources

Stars

159 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages