mssql_io 0.0.3
mssql_io: ^0.0.3 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.3 #
Changed #
- Consistent variable naming throughout (_conn → _request)
- Simplified example app code structure
- Cleaner and more developer-friendly examples
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.3: Consistent naming and cleaner examples
- 0.0.2: Web support and documentation cleanup
- 0.0.1: Initial release with full feature set