37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
👣 Elastop - панель мониторинга терминала Elasticsearch

Laptop - это панель мониторинга кластеров Elasticsearch на базе терминала для мониторинга кластеров Elasticsearch в режиме реального времени.

Она предоставляет полный обзор работоспособности кластера, состояния узлов, индексов и различных показателей производительности в удобном для интерфейсе терминала.

Этот инструмент был разработан таким образом, чтобы визуально выглядеть как HTOP.

# Clone the repository
git clone https://github.com/acidvegas/elastop.git
cd elastop
go build


🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Дурак восхищается сложностью, гений - простотой)

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 helm-cel — плагин для валидации значений в Helm-чартах с помощью CEL

💡 helm-cel помогает валидировать значения(values.yaml) helm чартов через CEL(Common Expression Language) - язык для написания простых логических выражений), что дает более выразительную валидацию, возможность переиспользования правил, разные уровни строгости и четкие сообщения об ошибках, в отличие от стандартной JSON Schema валидации (values.schema.json), которая более ограничена в возможностях написания сложных правил и переиспользования кода.

Пример правил:

expressions:
portRange: 'values.service.port >= 1 && values.service.port <= 65535'
nodePortRange: 'values.service.nodePort >= 30000 && values.service.nodePort <= 32767'

rules:
- expr: "${portRange}"
desc: "Service port must be valid"

- expr: 'values.service.type == "NodePort" ? ${nodePortRange} : true'
desc: "NodePort must be valid when type is NodePort"


❤️ Проект от подписчика, если хотите поделиться своим проектом - пишите сюда.

Github

@Golang_google

🔐 Лицензия: MIT
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Создание клиента BitTorrent с нуля на Go

BitTorrent – это пиринговый (одноранговый) сетевой протокол для обмена файлами через интернет. В отличие от традиционных методов загрузки файлов, где данные передаются между клиентом и сервером, BitTorrent использует децентрализованную модель, при которой пользователи делятся частями файла друг с другом. Это позволяет значительно снизить нагрузку на центральный сервер и ускорить процесс передачи данных.

### Как устроен протокол BitTorrent

Протокол BitTorrent работает следующим образом:

1. Tracker: Сервер, который отслеживает участников сети и помогает им находить друг друга. Он не хранит сами файлы, а лишь координирует обмен данными между пользователями.

2. Peers (пиры): Участники сети, которые загружают и раздают части файла одновременно. Пиры могут быть как загрузчиками (лечерами), так и раздающими (сидами).

3. Swarm: Группа пиров, участвующих в одном процессе скачивания/раздачи одного и того же файла.

4. Pieces (части): Файл делится на небольшие фрагменты одинакового размера (обычно около 256 КБ). Каждый фрагмент может быть передан независимо от других.

5. Chunks (куски): Внутри каждого фрагмента файл делится еще на куски размером 16 КБ. Эти куски передаются по одному, чтобы минимизировать задержки и увеличить скорость передачи.

6. Hashes: Каждая часть имеет свой уникальный хеш-код, который используется для проверки целостности данных после их получения.

7. Seeding (раздача): После завершения загрузки файла пользователь продолжает оставаться в сети и делиться своими копиями частей файла с другими участниками.

8. Leeching (загрузка): Процесс скачивания файла, когда пользователь получает части файла от других участников сети.

В этом посте вы узнаете как использовать протокол BitTorrent для загрузки Debian.

⚡️ Читать

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Dive

Инструмент для анализа Docker-образов, предназначенный для поиска возможностей оптимизации их размера.

Он предоставляет возможность просмотра содержимого слоёв и отслеживания изменений файлов, а также оценивает эффективность образов, вычисляя «потерянное» пространство.

Инструмент может быть интегрирован в процессы CI/CD и поддерживает работу с разными источниками образов, такими как Docker и Podman.

dive <your-image-tag>

GitHub

@Golang_google
👣 Neffos

Кроссплатформенный real-time фреймворк с элегантным API, написанный на Go

#golang

Github
Документация

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 prisma-client-go — клиент для интеграции Prisma ORM с языком программирования Go!

🌟 Prisma Client Go позволяет разработчикам взаимодействовать с базами данных, используя удобный интерфейс с типизацией, генерируемой на основе схемы базы данных. Этот инструмент упрощает написание запросов к базе данных и обеспечивает безопасность типов.

🔐 Лицензия: Apache-2.0

🖥 Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣😚 Выпущены версии Go 1.23.4 и 1.22.10🎉🎉🎉

🗣 Анонс: https://groups.google.com/g/golang-announce/c/3DyiMkYx4Fo

⬇️ Скачать: https://go.dev/dl/#go1.23.4

#golang

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 rill — это набор инструментов, который привносит в Go компонуемый параллелизм, упрощая создание параллельных программ из простых, повторно используемых частей!

🌟 Rill предоставляет простой и высокоэффективный фреймворк для работы с потоковыми данными в реальном времени, что особенно полезно для построения аналитических и ETL-пайплайнов. Основной целью является облегчение работы с большими объемами данных в реальном времени, улучшение производительности обработки и упрощение интеграции с другими системами.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
😈 HellPot – это крутая ловушка для ботов на вашем сервере, которая заманивает автономных HTTP-ботов в цифровой ад.

Боты, игнорирующие файл robots.txt, попадают в ловушку HellPot, где им подается непрерывный поток данных, настолько похожих на реальный сайт, что они продолжают работать до тех пор, пока окончательно не исчерпают свои ресурсы или не прекратят своё существование.

Под капотом этого "вечного страдания" находится движок, который передает клиенту, использующему fasthttp, фрагменты "Зарождения трагедии" ("Эллинизм и пессимизм") Фридриха Ницше.

🖥 Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👣 partdec — утилита командной строки для загрузки данных по частям и разбиения файлов!

🌟 Она позволяет разделять файлы как из веб-источников, так и из локального хранилища, распределяя их части по различным путям назначения.

🔍 Особенности Partdec: поддержка многопоточной загрузки с отдельным соединением для каждой части файла и функция безопасного восстановления загрузки после прерывания! Основной язык разработки — Go. Это может быть полезным инструментом для разработчиков, работающих с большими файлами или данными, которые нужно распределить между несколькими системами.

🔐 Лицензия: Apache-2.0

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Carbon - A Lightweight In-Memory Cache for High Throughput

Свежая легкая и высокопроизводительная библиотека кэширования в оперативной памяти для Go, разработанная с учетом требований API, требующих быстрого и эффективного кэширования данных.

#golang

go get github.com/scott-mescudi/carbon

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Go Graph Seeder — CLI-инструмент, разработанный на языке Go, предназначенный для генерации случайных данных и заполнения графовых баз данных, совместимых с Gremlin!

🌟 Он позволяет пользователям создавать узлы и ребра с различными свойствами, используя JSON-конфигурационные файлы. Это упрощает процесс наполнения графовых баз данных случайными или тестовыми данными, что особенно полезно при разработке и тестировании приложений, работающих с графовыми структурами данных.

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Flamingo — фреймворк, разработанный на Go, для создания модульных приложений!

🌟 Его основное внимание уделено чистой архитектуре, поддерживаемости кода и готовности к эксплуатации. Flamingo предоставляет гибкую основу для построения приложений с акцентом на расширяемость и использование подхода dependency injection.

🌟 Фреймворк включает ядро и модули, такие как Flamingo Commerce для разработки e-commerce порталов, модули для интеграции с GraphQL, OpenTelemetry, а также инструменты для разработки пользовательских интерфейсов, такие как Flamingo Carotene.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Эта статья описывает процесс создания простого и практичного генератора паролей, который пользователь может применить для своих нужд!

🌟 Основной функционал этого приложения включает выбор длины пароля, опции для добавления заглавных и строчных букв, цифр и символов, а также возможность копирования сгенерированного пароля в буфер обмена.

🔗 Ссылка: *клик*

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 gjson — библиотека для работы с JSON-данными в Go!

💡 Она позволяет легко и эффективно извлекать значения из JSON-структур с использованием простого и быстрого синтаксиса.

🔍 Основные особенности gjson:

🌟 Быстрое извлечение данных: Gjson использует оптимизированные алгоритмы для поиска данных в JSON, что делает её значительно быстрее по сравнению с другими библиотеками, особенно при работе с большими JSON-файлами.

🌟 Простота использования: API библиотеки очень простое, и для извлечения значения из JSON-строки достаточно одного вызова функции.
Поддержка сложных структур: Gjson позволяет работать с вложенными объектами и массивами в JSON-данных.

🌟 Низкие затраты на память: Она также минимизирует использование памяти, что делает её подходящей для работы в условиях ограниченных ресурсов.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Эта статья обсуждает неэффективные и плохие практики при создании конвейеров в Go!

🌟 Автор рассматривает несколько популярных, но ошибочных способов реализации конвейеров в Go, которые могут привести к проблемам с производительностью, читаемостью кода и сложностью поддержки.

🔗 Ссылка: *клик*

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Lead Go Developer в команду платформы по нативной рекламе

VK AdBlogger — это платформа, которая соединяет рекламодателей с блогерами ВКонтакте и помогает брендам размещать рекламу напрямую в аккаунтах авторов.

Платформа создаёт простую и прозрачную систему для работы с инфлюенсерами, где каждая кампания превращается в нативный контент, а блогеры могут эффективно монетизировать свои каналы.

В команду ищут лида, который будет создавать и развивать доменное направление новой платформы influence- и performance-маркетинга. А ещё участвовать в системном дизайне и управлять двумя-тремя разработчиками.

Ожидается, что вы: в бэкенде от четырёх лет, на Go — от трёх; работали с Postgres и хранилищами in-memory; знаете классические алгоритмы и структуры данных; понимаете контейнеризацию; управляли небольшой командой разработки.

Подробнее о вакансии тут.
👣 strutil — набор утилит для работы со строками в языке Go, включая вычисление метрик схожести строк, таких как Hamming, Levenshtein, Jaro, Jaro-Winkler, Sorensen-Dice, и другие!

🌟 Инструмент поддерживает интерфейс для создания пользовательских метрик и вычисления схожести строк. Это полезный инструмент для задач анализа текстов и сравнения строк.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 RelaxSearch — это легкий, демонстрационный проект поисковой системы, созданный с помощью Go и Elasticsearch!

🔍 Он состоит из двух основных компонентов:

🌟 RelaxEngine: веб-скрейпер, который периодически индексирует контент с заданных URL с помощью cron-заданий и сохраняет его в Elasticsearch.

🌟 RelaxWeb: API-сервер, который предоставляет возможность полнотекстового поиска по проиндексированным данным.
Цель проекта — продемонстрировать основы создания поисковой системы.

💡 RelaxEngine выполняет веб-скрейпинг и индексацию данных, а RelaxWeb предоставляет REST API для поиска по этим данным с поддержкой фильтрации, пагинации и выделения ключевых слов.

🔐 Лицензия: MIT

🖥 Github

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Graph — это библиотека для работы с графовыми структурами данных на Go!

🌟 Она позволяет создавать, изменять, анализировать и визуализировать графы с любым типом вершин. Поддерживаются алгоритмы поиска путей, компонентов, топологической сортировки, обходов (DFS, BFS) и проверки свойств графа (например, на ацикличность). Также доступна интеграция с библиотекой Graphviz для визуализации. Библиотека позволяет добавлять метаданные к вершинам и рёбрам, а также использовать пользовательские хранилища.

🔐 Лицензия: Apache-2.0

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM