Hacker News Digest

Тег: #system-programming

Постов: 3

Synadia and TigerBeetle Commit $512k USD to the Zig Software Foundation (synadia.com) 🔥 Горячее

Synadia и TigerBeetle совместно выделили $512,000 на поддержку Zig Software Foundation в течение двух лет. Synadia, создатель NATS.io, помогает крупным предприятиям проектировать и масштабировать архитектуры в облаке и на периферии, обслуживая клиентов в финансовой сфере, электронной коммерции, гейминге и промышленном IoT. TigerBeetle, финансовая база данных, разработанная на Zig с философией "TigerStyle", подчеркивает правильность, ясность и надежность.

Основатель Synadia Дерек Коллисон отметил, что Zig переопределяет возможности современного системного программирования благодаря своему подходу к контролю, производительности и простоте. Основатель TigerBeetle Йоран Дирк Гриф выразил уверенность, что Zig сыграет основополагающую роль в следующем поколении надежных распределенных систем. Обе компании разделяют видение предсказуемого, простого и заслуживающего доверия программного обеспечения, поддерживая Эндрю Келли и весь Zig-сообщество.

by derekcollison • 25 октября 2025 г. в 13:24 • 372 points

ОригиналHN

#zig#nats.io#tigerbeetle#cloud#iot#rust#system-programming#distributed-systems

Комментарии (104)

  • Оценивали Rust, Zig и Ada/SPARK для критически важного ПО; Rust имеет поддержку корпорации и сообщества, но не применяется в кибер-физических системах.
  • TigerBeetle получил $512k в течение 2 лет от Synadia и TigerBeetle, что вызвало вопросы о стратегии финансирования и приоритете языков.
  • Обсуждение вылилось в обмен любезностями и техническими деталями, включая предположения о переходе на Zig и оставлении Rust без должной поддержки.

Show HN: Zedis – A Redis clone I'm writing in Zig (github.com)

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

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

by barddoo • 19 сентября 2025 г. в 21:55 • 143 points

ОригиналHN

#zig#redis#databases#system-programming#memory-management#static-typing#kvrocks#garnet#redka#github

Комментарии (92)

  • Обсуждаются альтернативы Redis, такие как kvrocks, Garnet и Redka, с поддержкой хранения данных на диске и работой в условиях ограниченной памяти.
  • Участники дискутируют о стабильности языка Zig для реальных проектов, отмечая частые изменения в стандартной библиотеке и отсутствие версии 1.0.
  • Поднимается вопрос о названии проекта "RiiZ" и возможном нарушении торговой марки Redis из-за схожести имен.
  • Отмечается, что проект является учебным для изучения Zig, а не коммерческим продуктом, и пока не поддерживает все функции Redis (например, аутентификацию, поиск ключей).
  • Обсуждаются технические детали реализации памяти и деструкторов в Zig, а также возможность использования LLM для генерации кода на этом языке.

Tracking trust with Rust in the kernel (lwn.net)

Встраивание Rust в ядро Linux продвигается с новым API для безопасной обработки ненадёжных данных из пользовательского пространства. Benno Lossin предложил тип Untrusted<T>, который помечает данные как непроверенные и предотвращает их случайное использование в ядре. Этот тип работает на уровне системы типов без накладных расходов в runtime, что делает его эффективным инструментом для маркировки данных из сетевых соединений, съёмных носителей или пользовательских вводов.

API включает утилиты для работы с распространёнными структурами данных, такими как срезы и векторы, и рекомендует интерфейсы вроде read_from_userspace(buf: &mut [Untrusted<u8>]) для безопасного копирования. Для валидации данных введён трейт Validate, хотя его реализация пока требует доработки. Greg Kroah-Hartman предложил добавить пример использования в драйверах, особенно для уязвимых мест вроде ioctl(), где непроверенные данные исторически вызывали переполнения буфера.

by pykello • 15 сентября 2025 г. в 10:54 • 141 points

ОригиналHN

#rust#linux#kernel#system-programming#c++#per#tainting#borrowck#ioctl#untrusted

Комментарии (45)

  • Обсуждаются преимущества строгих типов (например, Untrusted<T>) для повышения безопасности, особенно при обработке пользовательского ввода в веб-приложениях и ядре ОС.
  • Отмечается, что подобные подходы уже эффективно реализованы в Rust (для embedded и системного программирования) и Perl ("tainting"), делая код более надежным.
  • Подчеркивается, что в C++ также возможна подобная типобезопасность, но она редко используется на практике из-за сложности и инерции сообщества.
  • В контексте ядра ОС отмечается, что "ненадежные" данные не только потенциально вредоносны, но и нестабильны (могут меняться конкурентно, быть недоступными).
  • Утверждается, что система владения и проверки заимствований (borrowck) в Rust делает подобные API более эргономичными и безопасными по сравнению с C++.