mssql_io 0.0.6 copy "mssql_io: ^0.0.6" to clipboard
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_command automatically builds FreeTDS during pod 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 log instead of pthread for 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 access
  • connect() - Establish connection with configuration
  • disconnect() - Close connection and free resources
  • getData() - Execute SELECT queries
  • getDataWithParams() - Execute parameterized SELECT queries
  • writeData() - Execute INSERT/UPDATE/DELETE operations
  • writeDataWithParams() - Execute parameterized write operations
  • beginTransaction() - Start transaction
  • commit() - Commit transaction
  • rollback() - Rollback transaction
  • bulkInsert() - 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
4
likes
160
points
349
downloads

Publisher

verified publisherfarhansadikgalib.com

Weekly Downloads

Flutter plugin for Microsoft SQL Server using FFI and FreeTDS. Cross-platform support.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

ffi, flutter, flutter_web_plugins, http

More

Packages that depend on mssql_io

Packages that implement mssql_io