native_mdns_scanner 1.0.2
native_mdns_scanner: ^1.0.2 copied to clipboard
Dart FFI bindings for macOS mDNS/Bonjour services. Provides native access to multicast DNS functionality on macOS.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2025-05-23 #
Added #
- Initial release of native_mdns_scanner for macOS
- Native mDNS/Bonjour service discovery using macOS system APIs via FFI
- Simultaneous multi-service scanning - scan multiple service types at once
- Periodic scanning support with configurable query intervals and duration
- Rich device information including IP, port, service type, TXT records, and discovery metadata
- Timing analysis tools for analyzing discovery patterns and performance
- Command-line interface (
mdns_cli) for testing and debugging - Comprehensive API with the following classes:
MdnsFfi- Main scanning functionalityDeviceInfo- Device/service information modelTimingAnalyzer- Discovery timing analysis utilities
- Multiple scanning modes:
- Simple single-service scanning
- Multi-service simultaneous scanning
- Periodic scanning with custom intervals
- Flexible library loading with automatic path detection
- Full test coverage with unit and integration tests
- Example applications demonstrating various use cases
Features #
- π High-performance native implementation using Objective-C and macOS Bonjour APIs
- π― Simultaneous scanning - unlike sequential-only libraries
- β±οΈ Smart timing analysis to verify simultaneous discovery
- π₯οΈ CLI tool with multiple commands and options
- π Detailed discovery metrics and statistics
- π§Ή Proper resource management with automatic cleanup
Platform Support #
- β macOS (arm64 + x86_64 universal binary)
- β iOS (not supported in this release)
- β Windows/Linux (not supported)
Dependencies #
- Dart SDK: >=3.0.0 <4.0.0
- ffi: ^2.1.4
Documentation #
- Complete README with usage examples
- API documentation for all public classes
- CLI usage guide with examples
- Build instructions for the native library