Відкритий код · Rust · MIT / Apache-2.0

Пакетна автоматизація iRedAdmin — прямо з робочого стола.

MailGrit — крос-платформний десктоп-додаток для пакетного створення, редагування та видалення облікових записів користувачів пошти на серверах iRedAdmin — навіть за FortiWeb / WAF — через вбудований браузер, який виконує легітимний fetch у справжній сесії. Без інструментарію Node/JS: нативний WebView2/wry через Dioxus 0.7.

Windows Linux macOS ARM Dioxus 0.7 Rust 1.97.1, edition 2024 9 мов
5
Ізольованих крейтів воркспейсу
9
мов інтерфейсу, вбудованих під час компіляції
0
байт unsafe (forbid у всьому воркспейсі)
3
платформи у CI: Windows, Linux, macOS ARM
01 / Можливості

Усе для керування поштовими акаунтами у масштабі.

Нативна панель поверх справжньої сесії iRedAdmin — без крихкого відтворення куків і без окремого HTTP-клієнта, що ламається за WAF.

Пакетні операції на основі CSV

Керуйте масовим створенням / редагуванням / видаленням із CSV. BOM видаляється автоматично, заголовки зіставляються гнучко (нечутливі до регістру), а жорсткі обмеження на кількість рядків і довжину захищають від випадкових великих вхідних даних.

Зашифрований ланцюговий журнал аудиту

Кожна операція додається до ланцюга, стійкого до втручання (HMAC-SHA256), і шифрується в спокої потоковим AEAD (XChaCha20-Poly1305). Ніщо не змінюється непомітно.

Захист ключем головного пароля

Виводить ключ журналу аудиту та ключ експорту через Argon2id (KDF, стійкий до атак по пам'яті). Пароль ніколи не зберігається: втративши його, ви не розблокуєте журнал аудиту та зашифровані експорти.

Працює за FortiWeb / WAF

Запити виконуються як fetch у тому самому вебв'ю, що утримує легітимну сесію, тож серверну автентифікацію, яку тримає проксі, не потрібно відтворювати — без вгадування куків.

9 мов, скомпільовано всередину

Англійська, німецька, французька, іспанська, італійська, португальська, нідерландська, польська та українська. Переклади вбудовуються в бінарник; ваш вибір зберігається в config.toml.

Безрамковий інтерфейс з темами

Власна дизайн-система на CSS-токенах: користувацький тайтлбар, темна та світла теми з перемикачем, симетрична сітка карток, модальне підтвердження для руйнівних операцій та індикатори прогресу.

02 / Модель безпеки

Безпека за замовчуванням, контрольована під час компіляції.

Безпека — це політика всього воркспейсу, а не «найкраще зусилля»: unsafe_code = "forbid", суворий clippy та перевірки ланцюга постачання виконуються на кожній підтримуваній платформі у CI.

Політика, що не може «попливти»

  • unsafe_code = "forbid" у всьому воркспейсі — жодного unsafe в жодному крейті додатку.
  • Групи clippy correctness, suspicious, complexity, perf, pedantic, nursery та cargo — усі deny.
  • panic, unwrap_used, expect_used, indexing_slicing, arithmetic_side_effects — усі deny.
  • Ланцюг постачання: cargo-deny (advisories, bans, licenses, sources) плюс cargo-audit.
  • Журнал аудиту у спокої: потоковий AEAD XChaCha20-Poly1305; хеш-ланцюг HMAC-SHA256 для цілісності.
  • Головний пароль: Argon2id — KDF, стійкий до атак по пам'яті; ніколи не зберігається і не логується.
Cargo.toml
# Без винятків: wry 0.53 повертає HttpOnly cookies нативно.
# Кожен крейт додатку перевіряється за цією політикою.
[workspace.lints.rust]
unsafe_code = "forbid"

[workspace.lints.clippy]
correctness      = { level = "deny", priority = -1 }
suspicious       = { level = "deny", priority = -1 }
pedantic         = { level = "deny", priority = -1 }
unwrap_used      = "deny"
indexing_slicing = "deny"
arithmetic_side_effects = "deny"
panic            = "deny"
03 / Інтернаціоналізація

Дев'ять мов, у бінарнику.

Переклади вбудовуються під час компіляції через rust-i18n — файлів ресурсів ганяти під час виконання не треба. Ваш вибір зберігається в config.toml.

en Англійська English de Німецька Deutsch fr Французька Français es Іспанська Español it Італійська Italiano pt Португальська Português nl Нідерландська Nederlands pl Польська Polski uk Українська Українська
04 / Швидкий старт

Одна команда до release-збірки.

MailGrit — це воркспейс Cargo; зберіть десктоп-додаток для своєї платформи й запускайте його безпосередньо.

bash
# Потребує Rust 1.97.1 (закріплений через rust-toolchain.toml, edition 2024)
$ cargo build --release -p mailgrit-app-desktop

# Windows
> .\target\release\mailgrit-app-desktop.exe

# Linux / macOS
$ ./target/release/mailgrit-app-desktop

Під час першого запуску поряд із бінарником створюється тека mailgrit-data/, де зберігаються усі файли додатку. Вкажіть URL вашого iRedAdmin, увійдіть один раз у вбудованому браузері — і панель операцій відкриється автоматично.

05 / Архітектура

П'ять крейтів, кожен можна тестувати окремо.

Воркспейс Cargo, де шари домену, парсингу, сховища, безпеки та інтерфейсу розділені — cargo test -p <crate> запускає кожен окремо.

Структура воркспейсу

  • core-domain — доменні типи (Newtype/Typestate), помилки, константи обмежень, політика паролів.
  • core-csv — парсинг та валідація CSV із видаленням BOM і жорсткими обмеженнями пам'яті.
  • core-storage — локальне сховище SQLite: журнал операцій і ланцюговий журнал аудиту.
  • core-security — криптографія у спокої: потоковий AEAD, HMAC-хеш-ланцюг, Argon2id KDF.
  • app-desktop — десктоп-додаток Dioxus 0.7: вікно входу, обробка куків, нативна RSX-панель.
graph
# кожен крейт компілюється / тестується окремо
core-domain ─┬─ core-csv ────┐
             ├─ core-storage ─┤
             └─ core-security ┴─ app-desktop

Підтримати MailGrit

MailGrit безкоштовний і має відкритий код. Якщо він економить ваш час — підтримайте розвиток проєкту.

Донат