37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
👣 Fileserver — это легковесный сервер на Go, предназначенный для обслуживания статических файлов и одностраничных приложений (SPA) без зависимостей!

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

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Minecraft from scratch

Этот проект представляет собой клон Minecraft, разработанный «с нуля» на Go с использованием только современного OpenGL.

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

Основные возможности проекта
- Процедурная генерация мира:
Используется многократно применяемый Perlin noise для создания бесконечного, процедурно генерируемого ландшафта. Присутствует система биомов, генерация пещер, деревьев и даже простейших систем формирования рельефа.

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

- Графика и рендеринг:
Приложение написано с использованием OpenGL 4.1. Реализованы собственные шейдерные программы для отрисовки блоков, UI-элементов и эффектов, а также применяются методы отсечения (view frustum culling) для оптимизации рендеринга.

- Игровой цикл и механика:
В проекте присутствует смена дня и ночи, динамическое освещение, а также возможность размещения и удаления блоков, что имитирует базовую механику игры Minecraft. Также предусмотрены такие элементы, как инвентарь игрока и режим полёта.

- Динамическая загрузка чанков:
Мир разбит на чанки, которые подгружаются и выгружаются динамически в зависимости от положения игрока, что помогает снизить нагрузку на систему и обеспечить плавную работу даже в больших мирах.

Как реализован проект
Язык и библиотеки:
Проект написан на Go. Для работы с графикой используются библиотеки github.com/go-gl/gl/v4.1-core/gl и github.com/go-gl/glfw/v3.3/glfw, а для математических вычислений применяется github.com/go-gl/mathgl/mgl32.

Архитектура:
Код организован по принципу компонентного подхода:

- World и World Generator: отвечают за генерацию чанков, ландшафта и размещение объектов (деревьев, пещер и т.д.).
- Physics Engine: содержит реализацию динамики, обработки столкновений и расчётов движения.
Рендеринг: система отрисовки, которая включает шейдеры, оптимизацию через отсечение невидимых объектов и поддержку динамического освещения.
- Система управления: включает обработку ввода с клавиатуры и мыши, что позволяет управлять персонажем, переключать режимы (например, полёта) и взаимодействовать с миром.


Проект интересен нескольким категориям разработчиков:

- Любители OpenGL и низкоуровневой графики:
Он демонстрирует, как можно создать полноценное 3D-приложение с использованием только OpenGL без сторонних движков.

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

- Инженеры, интересующиеся процедурной генерацией и физическими движками:
Реализация процедурного мира, генерация ландшафта с помощью Perlin noise и собственный физический движок представляют собой интересный материал для изучения и экспериментов.

Github

@golang_google

#gamedev #Minecraft #golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Xun — это HTTP-веб-фреймворк на Go, использующий net/http.ServeMux из Go 1.22 и html/template для серверного рендеринга!

🌟 Он поддерживает сжатие ответов (gzip, deflate), автоматическое SSL (AutoTLS) через Let's Encrypt, встроенную валидацию форм с i18n и систему ViewEngine (Static, Json, Html).

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

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Go Repos: простое веб-приложение, которое выводит случайные репозитории GitHub, написанные на языке Go.

Репозиторий может быть полезен Go-разработчикам, особенно если вы хотите:

Изучить, как создать простое веб-приложение на Go с использованием стандартных пакетов (net/http, html/template).

Понять, как работать с GitHub API для получения данных о репозиториях.
Получить примеры реализации быстрого и легковесного UI для поиска и отображения Go-проектов.

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

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 gignr — это CLI-инструмент для генерации и управления файлами .gitignore, интегрирующийся с GitHub, TopTal и пользовательскими репозиториями! Он позволяет легко находить, комбинировать и сохранять шаблоны .gitignore для разных технологий.

🌟 Инструмент поддерживает интерактивный интерфейс (TUI), объединение нескольких шаблонов, локальное хранение и гибкую настройку через config.yaml. Установить gignr можно через go install или Homebrew.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Kong – мощный и удобный command-line парсер для Go

Если вы разрабатываете CLI-приложения на Go, то наверняка сталкивались с необходимостью поддерживать сложные иерархии команд с минимальными усилиями. Именно для этого создан Kong.

Основные преимущества:
- Поддержка сложных структур команд: Kong позволяет легко реализовать вложенные команды, флаги и аргументы, обеспечивая гибкость даже для очень сложных CLI-интерфейсов.
- Минимальные усилия для разработчика: Благодаря декларативному синтаксису и использованию структур с тегами, настройка и расширение функционала осуществляется с минимальными затратами кода.
- Автоматическая генерация справки: Инструмент автоматически формирует подробные сообщения о использовании (help), что упрощает поддержку и документацию вашего приложения.
- Высокая производительность и надёжность: Kong спроектирован с учётом лучших практик Go-разработки, что делает его быстрым и стабильным решением для ваших проектов.

Разработка CLI-интерфейсов может быть утомительной, особенно когда требуется реализовать поддержку множества команд и опций.

Kong решает эту проблему, сводя настройку сложных структур к минимально необходимому коду, позволяя сконцентрироваться на бизнес-логике приложения.

Этот инструмент подойдёт как для небольших утилит, так и для крупных проектов, требующих продвинутого управления командами.

Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 go-msquic — это обертка на Go для библиотеки MsQuic, разработанной Microsoft, которая реализует протокол QUIC!

🌟 Она предоставляет Go-разработчикам интерфейс для работы с протоколами, основанными на QUIC, такими как HTTP/3. API go-msquic вдохновлено проектом quic-go и может использоваться в качестве его замены. Однако, учитывая необходимость работы с C-библиотеками, рекомендуется использовать quic-go, если вы не готовы к взаимодействию с C-кодом.

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Monarch — это фреймворк для работы с временными рядами и онлайн-машинным обучением, написанный на Go!

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

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Machbase Neo — это высокопроизводительная база данных временных рядов, специально разработанная для приложений Интернета вещей (IoT)!

🌟 Она объединяет в себе функции хранения временных данных, поддержку протоколов MQTT и HTTP, а также инструменты для визуализации данных, что делает её универсальным решением для построения IoT-платформ.

🖥 Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 nginx-proxy — это инструмент с открытым исходным кодом, который автоматически настраивает обратный прокси-сервер Nginx для Docker-контейнеров!

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

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Nightingale Monitor — это облачное решение для мониторинга и анализа с открытым исходным кодом, основанное на концепции «всё в одном».

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

Подобно подходу Grafana к интеграции источников данных, Nightingale также подключается к различным существующим источникам данных. Однако, в то время как Grafana фокусируется на визуализации, Nightingale фокусируется на механизмах оповещения.

Решение хорошо интегрируется с облачными платформами и предлагает компаниям комплексные возможности для мониторинга, анализа и оповещения.

GitHub: https://github.com/ccfos/nightingale.

#безопасность #мониторинг #Prometheus #Grafana #SRE

@golang_google
👣 NativeWebP — это библиотека на Go, предназначенная для кодирования изображений в формате WebP без зависимости от внешних библиотек, таких как libwebp!

🌟 Её основное преимущество — высокая производительность и эффективность, позволяющая создавать файлы меньшего размера по сравнению со стандартным Go-энкодером PNG, при этом обеспечивая примерно на 50% более быструю скорость работы.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 GoChromecast — это инструмент на Go для передачи видео на устройства Chromecast и Android TV! Он автоматически обнаруживает устройства в сети и позволяет отправлять на них медиаконтент.

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Godex — это CLI-файловый менеджер, поддерживающий поиск, архивацию (zip/unzip), резервное копирование в Google Drive и автодополнение команд!

🌟 Установка:

git clone https://github.com/inodinwetrust10/godex
cd godex
go build -o godex


Лицензия: MIT

Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣orderedmap — это библиотека на языке Go, реализующая упорядоченную карту (Ordered Map), которая сохраняет порядок добавления ключей, подобно LinkedHashMap в Java! Она поддерживает сериализацию и десериализацию в формат JSON, что упрощает работу с данными в веб-приложениях.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 SprayShark — это инструмент для проведения атак методом "password spraying" на G-Suite учетные записи!

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

🔐 Лицензия: BSD-2-Clause

🖥 Github

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

🌟 Автор объясняет, как порядок объявления полей в структуре влияет на её размещение в памяти и, соответственно, на быстродействие программы.​

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

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Интересная статья "Go 1.24 Remote Caching Explained" рассказывает о новом механизме удалённого кэширования в Go 1.24, который значительно ускоряет сборку проектов.

Главные тезисы:

• Ускорение сборки: Механизм позволяет повторно использовать результаты компиляции, что существенно сокращает время сборки, особенно в CI/CD-процессах.
• Лёгкая интеграция: Удалённое кэширование легко внедряется в существующие рабочие процессы с минимальными настройками, улучшая эффективность сборок в больших проектах.
• Использование кэша обеспечивает повторяемость сборок и помогает избежать неожиданных ошибок, повышая надёжность финальных артефактов.
• Практические примеры и рекомендации: Статья подробно объясняет, как настроить удалённое кэширование, обсуждает его преимущества и ограничения, а также приводит примеры из реальной практики.

Полная статья

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