mssql_io 0.0.6
mssql_io: ^0.0.6 copied to clipboard
Flutter plugin for Microsoft SQL Server using FFI and FreeTDS. Cross-platform support.
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.
0.0.6 #
Added #
- Automatic FreeTDS download and build for Android and iOS - FreeTDS is automatically downloaded and built during package installation
- Android Gradle task (
buildFreeTDS) automatically builds FreeTDS before native compilation - iOS CocoaPods
prepare_commandautomatically builds FreeTDS duringpod install - Enhanced error handling and build verification for both platforms
Improved #
- Enhanced iOS automatic FreeTDS building - Better error handling and graceful fallback to stub
- iOS podspec now validates FreeTDS build success before using it
- Improved error messages and progress feedback during iOS builds
- Better handling of missing prerequisites (Xcode tools, CMake)
- Build scripts now executable by default
- Android build script with better download verification and error handling
- Enhanced Gradle task to verify build success for all ABIs
Fixed #
- iOS FreeTDS detection in CMakeLists.txt - Added iOS-specific detection before desktop check
- iOS CMake now properly finds FreeTDS when provided via CMake arguments
- Android pthread linking issue - Fixed to use
loginstead ofpthreadfor Android - iOS build_freetds.sh now properly validates each build step
- CMake failures in iOS builds now gracefully fall back to stub implementation
- Universal library creation only happens when both architectures build successfully
- Android build now continues with stub when NDK is not available (no build failure)
Changed #
- iOS prepare_command provides clearer progress messages
- Better error detection and reporting throughout iOS build process
- CMakeLists.txt improved to check provided FreeTDS paths first
- Android build.gradle enhanced with better NDK detection and environment variable passing
0.0.5 #
Added #
- Automatic FreeTDS building for Android and iOS - FreeTDS is now automatically downloaded and built during package installation
- Android Gradle task automatically builds FreeTDS before native compilation
- iOS CocoaPods prepare_command automatically builds FreeTDS during pod install
- Improved error messages and NDK detection for Android builds
Fixed #
- Android build now properly detects FreeTDS before setting source files
- CMake source file paths now use explicit CMAKE_CURRENT_SOURCE_DIR for better reliability
- Build system gracefully handles missing FreeTDS paths without fatal errors
- Android builds successfully with stub implementation when FreeTDS is not available
Changed #
- Improved CMake build logic to check FreeTDS availability before compilation
- Better error handling in Android build configuration
- README updated to reflect automatic FreeTDS building (no manual steps required)
0.0.4 #
Added #
- Mobile setup guide (SETUP_MOBILE.md) with detailed instructions
- Improved FreeTDS detection for Android and iOS
- Better error messages when FreeTDS is not available
Changed #
- Android build.gradle now auto-detects FreeTDS paths
- iOS podspec builds static libraries correctly
- README shortened with clearer mobile setup instructions
Fixed #
- Android FreeTDS linking - proper path detection and CMake configuration
- iOS FreeTDS linking - static library build and universal binary creation
- Connection error messages now clearly indicate FreeTDS setup requirements
0.0.3 #
Added #
- Stub implementation for building without FreeTDS
- Optional CMake build for better compatibility
- Mobile setup guide (SETUP_MOBILE.md) with detailed instructions
- Improved FreeTDS detection for Android and iOS
- Better error messages when FreeTDS is not available
Changed #
- Consistent variable naming throughout (_conn → _request)
- Simplified example app code structure (423 → 266 lines)
- Cleaner and more developer-friendly examples
- README shortened with clearer mobile setup instructions
- FreeTDS now optional for initial builds
- Android build.gradle now auto-detects FreeTDS paths
- iOS podspec builds static libraries correctly
Fixed #
- CMake build errors when FreeTDS not available
- Android release APK build issues
- Build system now works without FreeTDS (stub mode)
- Android FreeTDS linking - proper path detection and CMake configuration
- iOS FreeTDS linking - static library build and universal binary creation
- Connection error messages now clearly indicate FreeTDS setup requirements
0.0.2 #
Added #
- Web platform support via backend API proxy
- MssqlIoWeb class for web applications
- HTTP-based query execution for web
- Security-conscious web implementation (requires backend API)
Changed #
- Cleaned and simplified README documentation
- Removed all emojis for cleaner presentation
- Shortened documentation from 577 to 200 lines
- Variable naming in examples (conn → request)
- Description shortened to 87 characters
- Simplified example app (423 → 263 lines)
- Updated to latest dependencies (ffi 2.1.4, http 1.6.0)
Removed #
- Non-functional CI workflow
- Unnecessary documentation files
- Redundant guides and summaries
- CONTRIBUTING.md file
- Deprecated js package
Fixed #
- Package validation warnings resolved
- Unused dependencies removed (mockito, build_runner, ffigen)
- Git tracking issues with deleted files
- Super parameters in exception classes
- All analyzer issues resolved
Known Limitations #
- WASM compatibility not yet implemented (planned for future release)
- Web platform requires backend API server
0.0.1 #
Added #
- Initial release of MSSQL IO plugin
- Direct FFI access to SQL Server via FreeTDS
- Cross-platform support (Windows, Android, iOS, macOS, Linux)
- Secure parameterized queries using
sp_executesql - Transaction support (BEGIN, COMMIT, ROLLBACK)
- Bulk insert capabilities (BCP)
- Configurable connection timeouts
- Auto-reconnect functionality
- Base64 encoding for binary columns
- Comprehensive error handling with custom exceptions
- Singleton connection management
- JSON result format with deterministic schema
- Extensive unit tests with mocked FFI
- Integration tests with SQL Server
- CI/CD pipeline with GitHub Actions
- Complete API documentation
- Example Flutter app demonstrating all features
Features #
MssqlConnection.getInstance()- Singleton accessconnect()- Establish connection with configurationdisconnect()- Close connection and free resourcesgetData()- Execute SELECT queriesgetDataWithParams()- Execute parameterized SELECT querieswriteData()- Execute INSERT/UPDATE/DELETE operationswriteDataWithParams()- Execute parameterized write operationsbeginTransaction()- Start transactioncommit()- Commit transactionrollback()- Rollback transactionbulkInsert()- High-performance batch inserts- Connection status tracking
- Transaction state tracking
- Automatic error recovery with retry logic
Security #
- SQL injection protection via parameterized queries
- No credential logging in error messages
- Secure connection configuration
- TLS/SSL support (via FreeTDS configuration)
Performance #
- Zero-copy FFI implementation
- Efficient native memory management
- Batch processing for bulk operations
- Connection pooling ready
Documentation #
- Comprehensive README with examples
- API reference documentation
- Platform-specific setup guides
- Troubleshooting guide
- Security best practices
- Performance optimization tips
Testing #
- 95%+ code coverage
- Unit tests for all components
- Integration tests with real SQL Server
- CI tests on Linux, macOS, and Windows
- Android and iOS build verification
[Unreleased] #
Planned for Future Releases #
- WASM compatibility for web platform
- Connection pooling
- Stored procedure support with output parameters
- Streaming large result sets
- Enhanced Windows Authentication
- Built-in retry policies
- Query builder API
- Performance profiling tools
- Connection health monitoring
- Async batch operations
- Column-level encryption support
Version History #
- 0.0.6: Automatic FreeTDS download and build for Android/iOS, improved error handling, tested and verified
- 0.0.5: Automatic FreeTDS building for Android and iOS
- 0.0.4: Android/iOS FreeTDS linking fixes and improved build system
- 0.0.3: Consistent naming and cleaner examples
- 0.0.2: Web support and documentation cleanup
- 0.0.1: Initial release with full feature set