Сборка из исходников
Как собрать и запустить NetTrace самостоятельно — для разработки или для Linux и macOS.
Что нужно
| Rust | Стабильная версия; на Windows — инструментарий MSVC |
| Node.js | 20 или новее |
| Windows | WebView2 — есть в Windows 10 и 11 |
| Linux, macOS | Системные зависимости Tauri 2 |
| Для живого захвата | Npcap на Windows, libpcap на Linux и macOS |
SDK драйвера захвата не нужен: библиотека подключается во время работы.
Получить код
git clone https://github.com/Focusniks/NetTrace-desktop.git
Запуск в режиме разработки
cd NetTrace-desktop/apps/desktop
npm install
npx tauri dev
Откроется окно программы; правки интерфейса применяются на лету.
Сборка исполняемого файла
cd apps/desktop
npx tauri build --no-bundle
Результат — target/release/nettrace.exe (на Linux и macOS — target/release/nettrace).
Установщик для Windows и порядок выпуска версий описаны в разделе выпуск версий.
Тесты
Ядро:
cargo test --workspace
Интерфейс:
npm --prefix apps/desktop test
Проверка стиля и предупреждений:
cargo clippy --workspace --all-targets -- -D warnings
Нагрузочные тесты на большом захвате:
cargo test -p nettrace-engine --release -- --ignored --nocapture
Тестовые захваты
Файлы для тестов не хранятся в репозитории, а создаются кодом:
cargo run -p nettrace-testkit --bin gen-fixtures -- fixtures --large 20000
В папке fixtures появятся demo.pcapng, tcp_basic.pcap, tcp_problems.pcap и большой файл для нагрузки. Скриншоты этой документации сняты на demo.pcapng.
Интерфейс в браузере
Для отладки интерфейса без окна Tauri есть мост к тому же движку. Он слушает только 127.0.0.1 и в сборку программы не входит.
В одном терминале:
cargo run -p nettrace-devbridge
В другом:
npm --prefix apps/desktop run dev
Затем откройте http://localhost:1420.
Устройство проекта
| Каталог | Что в нём |
|---|---|
crates/model |
Общие типы данных |
crates/packet |
Адреса, время, чтение байт |
crates/capture |
Чтение и запись PCAP и PCAPNG |
crates/live |
Живой захват через Npcap или libpcap |
crates/protocol |
Диссекторы протоколов и реестр полей |
crates/flow |
Потоки и TCP-анализ |
crates/analysis |
Узлы, соединения, статистика, индикаторы |
crates/storage |
Индекс пакетов и чтение байт по требованию |
crates/query |
Язык фильтров |
crates/engine |
Сессия: индексирование, представления, поиск |
crates/testkit |
Построители пакетов для тестов |
apps/desktop |
Интерфейс на React и оболочка Tauri |
tools/devbridge |
Мост для отладки интерфейса в браузере |
docs |
Эта документация |
Как части связаны между собой — в разделе архитектура.
Как помочь проекту
- Сообщения об ошибках и предложения — в Issues.
- Исправления — через pull request. Перед отправкой запустите тесты и
clippy. - Правки документации: файлы лежат в
docs/в формате Markdown; на каждой странице сайта есть ссылка «Исправить эту страницу».