Skip to content
View dmitrymomot's full-sized avatar
🤨
🤨

Block or report dmitrymomot

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dmitrymomot/README.md

Bookmarks

Go (golang) packages:

  • binder - HTTP request data binder (JSON, form data, query, file from multipart form).
  • asyncer - simple, reliable, and efficient distributed task queue in Go.
  • mailer - is an email queue processor that exemplifies provider-agnostic versatility in its design.
  • httpserver - The httpserver package in Go offers a simple and efficient solution for creating, running, and gracefully shutting down HTTP servers, with support for context cancellation and concurrent execution.
  • go-smart-monolith - an example of a monolithic application built ready for microservice architecture.
  • oauth2-server - this is a simple OAuth2 server implementation in Go with some useful buns such as sign-in/sign-up/password recovery flows, API to manage user data and clients, token revocation, and introspection.
  • mongo-repository - this Go package provides a generic, extensible MongoDB repository with advanced CRUD operations, flexible querying capabilities, and support for common MongoDB patterns. It is designed to simplify the interaction with MongoDB using the official MongoDB Go driver.
  • filemanager - package provides a convenient way to interact with AWS S3 or S3-compatible storage services in Go. It simplifies common operations such as uploading files from various sources and removing files from S3 buckets.
  • clientip - provides functionality to accurately determine a client's IP address from HTTP requests, considering various headers that might contain the real IP address, especially when your application is behind a proxy or load balancer.
  • go-signature - this library converts any given data into a base64 string, signs it with a secret key.
  • email helpers - provides comprehensive utilities for validating and sanitizing email addresses. It includes functions to validate email formats, check domain blacklists, sanitize email addresses, and more.
  • pgready - a simple command-line utility to check if a PostgreSQL database is ready to accept connections.
  • templatex - a flexible and powerful Go template engine with support for layouts, internationalization (i18n), and useful template functions.

Theory:

  • Golang project layout - this is a basic layout for Go application projects. Has translations to 10+ languages.
  • Data Structures and Algorithms - several data structures and algorithms are implemented in Go.
  • System Design Interview - system design interview tips. This repository only teaches you how to handle the system design interview with a systematic approach in a short time.
  • The Algorithms - algorithms implementation in different languages, including go.
  • roadmap.sh - is a community effort to create roadmaps, guides, and other educational content to help developers pick up the path and guide their learnings.
  • Awesome Go Educations - a curated list of awesome articles and resources for learning and practicing Golang and its related technologies.
  • go-resiliency - resiliency patterns for golang (circuit-breaker, semaphore, deadline, batching, retriable).
  • failsafe-go - is a library for building fault-tolerant Go applications. It works by wrapping executable logic with one or more resilience policies, which can be combined and composed as needed. Policies include Retry, Circuit Breaker, Rate Limiter, Timeout, Bulkhead, and Fallback.

Tools:

  • sqlc - generates type-safe code from SQL.
  • sql-migrate - SQL schema migration tool for Go. It can be used as a CLI tool and a library in your app.
  • mage - it's a make-like build tool using Go. You write plain-old go functions, and Mage automatically uses them as Makefile-like runnable targets.
  • tldraw - it's a collaborative digital whiteboard. You can use tldraw to create a drop-in whiteboard for your product or as the foundation on which to build your own infinite canvas applications. The project is open-source, and the repository with code is here.
  • go-structurizr - this library allows you to auto-generate C4 component diagrams out from the Golang code. A good example here.
  • Go Recipes - a collection of tools for Go projects.
  • automaxprocs - Automatically set GOMAXPROCS to match Linux container CPU quota.

Made in Ukraine 🇺🇦

Licensing:

  • Fair-code is not a software license. It describes a software model where software:
    • is generally free to use and can be distributed by anybody
    • has its source code openly available
    • can be extended by anybody in public and private communities
    • is commercially restricted by its authors
  • Sustainable License - is the most liberal commercial license we could create. It balances the freedoms provided by open-source software with monetization, allowing creators to earn money from their work and reinvest that back into their efforts to continue long-term development. Read more about Sustainable License FAQ.
  • Golang licenses checker - go-licenses analyzes the dependency tree of a Go package/binary. It can report the libraries used and under what license they can be used. It can also collect all license documents, copyright notices, and source code into a directory to comply with license terms on redistribution.

Pinned Loading

  1. httpserver httpserver Public

    The httpserver package in Go offers a simple and efficient solution for creating, running, and gracefully shutting down HTTP servers, with support for context cancellation and concurrent execution.

    Go 1

  2. go-env go-env Public

    Helpers to work with environment variables.

    Go 1

  3. asyncer asyncer Public

    The asyncer wrapps hibiken/asynq package. This is a simple, reliable, and efficient distributed task queue in Go.

    Go 2 1

  4. random random Public

    Random string generator

    Go

  5. distlock distlock Public

    Go module for distributed locking

    Go

  6. oauth2-server oauth2-server Public

    OAuth2 standalone server

    Go 2 2