The Portuguese documentation is available in README.pt-BR.md.
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.
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 |
| 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 |
goroutinecontains many concurrency experiments.channelfocuses on channel creation, direction, buffering, and communication.patternscontains fan in, fan out, worker, semaphore, and pipeline examples.apiandapi-simplecontain HTTP and web API experiments.benchmarkcontains focused performance tests.webassemblycontains browser oriented Go experiments.crypt,jwt, andgo-tls-sslcover security related experiments.queue.examples,kafka, andgoogle.cloudexplore messaging and cloud integrations.
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/exampleYou 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 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.
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.
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.