Конкурентный сервер на Rust

Седьмая часть серии о конкурентных сетевых серверах. Тут автор рассматривает, как в Rust решаются те же задачи, что и в предыдущих частях на C, Python и JavaScript.

Автор последовательно показывает реализации сервера с простым протоколом. Сначала последовательную реализацию, затем один поток на клиента, потом фиксированный пул потоков с ограниченным каналом из crossbeam_channel для передачи задач. Далее разбирается асинхронный вариант на Tokio, где язык берет на себя futures и async/await, а сам евент луп реализуется внешним крейтом, и соединения обрабатываются как легкие зеленые треды через tokio::spawn

Новости

Post Thumbnail

Батчинг

Статья показывает, как в Go аккуратно батчить данные, поступающие в реальном времени, на примере обновления поля last_active_at для каждого запроса пользователя - вместо тысяч одиночных UPDATE группировать их в один UPDATE ... WHERE id IN (...). Суть подхо...

Post Thumbnail

KV на S3

Статья разбирает, как построить key-value базу данных, у которой основным слоем хранения является объектное хранилище вроде S3, на примере движка IsleDB на Go, и почему наивная замена "файлов на диске" на "объекты в бакете" не работает. СУБД неявно полагается ...

Post Thumbnail

Сервисы на Rust

Автор объясняет, почему Rust - отличный выбор для средних по размеру backend-сервисов, несмотря на меньшую "продуктивность" по сравнению с Go. В Rust богатая система типов, проверки компилятора и zero-cost-абстракции избавляют от багов бизнес-логики. В ст...

Post Thumbnail

Платите за скорость

В системах хранения данных каждая быстрая операция записи переносит недоделанную работу в другое место: возврат успеха сразу после копирования байтов в память оставляет риск потери при крахе машины, ожидание локального fdatasync() на SSD переживает сбой процес...

Post Thumbnail

Go идеален для AI

В эпоху ИИ-помощников узкое место разработки сместилось с написания кода на его проверку, ревью и сопровождение А какой язык просто читать? Конечно Go! Go - это целая платформа со встроенным форматтером, тестами, управлением зависимостями и инструментами...

Post Thumbnail

Пишите руками

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

Статьи

Post Thumbnail

DNS на Zig

Это должен был быть перевод статьи "From Log Reader to Packet Crafter — Building DNS from Scratch in C". Но автор довольно фигово написал исходную статью и не удосужился показать весь написанный код, Поэтому я решил пойти дальше, реализовать очень маленький ин...

Post Thumbnail

Playdate

Наше поколение выросло вместе с первыми консолями. Мы все с теплотой вспоминаем время, когда у нас появилась первая денди. Теперь у нас есть самые разные движки и большие мощности для игр. Но чем больше возможностей, тем сложнее начать что-то делать, сложне...

Post Thumbnail

Привет Ethernet

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

Post Thumbnail

RAG в Go проекте

Одна из ключевых задач для компаний, работающих с искусственным интеллектом, - обеспечить эффективный доступ к внутренним знаниям. На первый взгляд всё просто: загрузи корпоративные документы в большую языковую модель (LLM) и дай ей генерировать ответы. Но на ...

Инструменты

Post Thumbnail

dashbeam

Бесплатный open-source инструмент для передачи файлов и папок напрямую между устройствами через peer-to-peer сеть, без загрузки в облако, без аккаунтов и ограничений по размеру. Вместо WeTransfer или Dropbox файлы пересылаются device-to-device по протоколу QUI...

Post Thumbnail

awesome-free-models

Тщательно отобранный список бесплатных моделей, API и инструментов ИИ

Post Thumbnail

cryptgeon

Это безопасный open-source сервис для обмена заметками и файлами, вдохновлённый PrivNote и написанный на Rust и Svelte, а также имеющий CLI-клиент. Каждая заметка получает сгенерированные 256-битные id и ключ: id используется для сохранения и получения заметки...

Post Thumbnail

paneru

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