f4, сайд‑проекты и помощь экосистеме Go

unxed 56 минут назад f4, сайд‑проекты и помощь экосистеме Go Средний 7 мин 1.3K Go * Linux * macOS * Windows * Дайджест В процессе работы над f4, современной репродукцией Far Manager на Go, мне пришлось столкнуться с...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: unxed 56 минут назад f4, сайд‑проекты и помощь экосистеме Go Средний 7 мин 1. 3K Go * Linux * macOS * Windows * Дайджест В процессе работы над f4, современной репродукцией Far Manager на Go, мне пришлось столкнуться с кучей ограничений экосистемы и написать массу вспомогательных библиотек, добавив недостающие кусочки паззла. Встроенный mp3 плеер f4 (да, он уже есть, пусть и на стадии PoC, вызывается по Ctrl+Shft+M) на скрине не просто так — это чуть ли не единственный плеер для *nix, нормально работающий с русскими кодировками id3v1 тэгов, для чего в том числе как раз потребовалась отдельная библиотека.
Обзор всех наработок f4, которыми вы можете воспроизоваться в своих Go проектах — в этой статье. Да, в f4 добавился плеер, но статья не об этом:)Сразу оговорюсь: в этой статье не будет обзора на мои библиотеки zip, tar и zipper, на которых в f4 построена работа с архивами. Каждая из них наполнена возможностями настолько, что тянет на отдельную статью, которые тоже когда‑нибудь обязательно будут написаны!
Технические детали
Если совсем кратко, маниакальное распареллеливание и оптимизация + хранение любых метаданных платформы в любых форматах, вплоть до NTFS ACL в. xz + индексация, дающая произвольный доступ в tar и solid архивах. А, и ещё это всё совместимо по API со штатными либами для zip и tar — возможна прозрачная замена.
Также я сознательно не включил в статью библиотеки vtinput (ввод в терминале с поддержкой любых сочетаний клавиш) и vtui (современный кроссплатформенный «Turbo Vision» на Go с рендерингом и в консоль и в графику, сделанный по стандартам UX Far Manager). Тоже тянет на отдельную статью, оставлю на будущее. А теперь — обзор на всё остальное!
localecpНачнём как раз с id3v1 тэгов в mp3 файлах, раз уж у нас на вводном скрине именно плеер. Одна из главных причин проблем с UX в *nix экосистеме — то, что разработчики сдаются, не найдя доступных на Windows API. Простейший пример: в Windows у вас есть понятие «системная ANSI кодировка» (win) и «системная OEM кодировка» (dos), они привязаны к текущему языку системы.
Отраслевые последствия
А вот в Linux или на Mac таких понятий нет. Что делают программы, столкнувшись с необходимостью как‑то превратить однобайтный текст в Юникод (например, в заголовке zip архива или id3v1 тэге в mp3 файле)? Вариантов несколько: статистические эвристики (unar) или использование захардкоженной кодировки (zip/unzip), в лучшем случае — с возможностью ручного оверрайда.
В итоге люди до сих пор, в 2026 году, видят всем знакомые крякозябры. Я решил, что так дальше продолжаться не может.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





