A comprehensive static web application that helps developers determine if a specific MongoDB driver version is compatible with a given MongoDB server version. It uses MongoDB's official support lifecycle policy, which mandates drivers support server versions up to 3 years beyond EOL.
- โ Comprehensive Driver Support - Covers all 10 major MongoDB drivers with up-to-date version data
- ๐ Smart Compatibility Checking - Validates driver versions against server EOL + 3-year support windows
โ ๏ธ Compatibility Notice - Clear admonition explaining the 3-year EOL rule upfront- ๐ฏ Sequential Selection Flow - Enforced server โ language โ driver selection order to prevent errors
- ๐ Intelligent Version Input - Custom dropdown with digit-based filtering and keyboard navigation
- ๐ก Real-time Validation - Live semantic version validation with visual feedback indicators
- ๐ Contextual Help - Shows latest versions, release dates, and repository links for each selection
- ๐ Dark/Light Theme - Automatic system theme detection with manual toggle option
- ๐ฑ Responsive Design - Works seamlessly on desktop and mobile devices
- ๐จ Modern UI - Professional interface with smooth animations and hover effects
- ๐ GitHub Integration - Direct links to official repositories and release notes
- Server Version First - Choose from all supported MongoDB server versions with release/EOL dates
- Language Selection - Pick your driver/language after selecting a server version
- Driver Version Input - Enhanced input with smart dropdown filtering and validation
- Custom Dropdown - Replaces browser datalist with full keyboard navigation support
- Digit-based Filtering - Dropdown only appears when you type at least one digit
- Real-time Validation - Visual indicators (โ
โ
โ ๏ธ ) show version status instantly - Release Date Display - See when each version was published
- Repository Links - Direct access to GitHub releases for each driver
- Automatic Detection - Respects your system's dark/light mode preference
- Manual Toggle - Switch themes manually with the moon/sun button
- Smooth Transitions - All theme changes animate smoothly
This application provides comprehensive compatibility checking for all major MongoDB drivers:
| Driver | Language | Repository |
|---|---|---|
| C | C | mongo-c-driver |
| C++ | C++ | mongo-cxx-driver |
| C#/.NET | C# | mongo-csharp-driver |
| Go | Go | mongo-go-driver |
| Java | Java | mongo-java-driver |
| Node.js | JavaScript | node-mongodb-native |
| PHP | PHP | mongo-php-driver |
| Python | Python | mongo-python-driver |
| Ruby | Ruby | mongo-ruby-driver |
| Rust | Rust | mongo-rust-driver |
Driver data is regularly updated from official GitHub repositories
- Clone or download this repository
- Open
mongodb_driver_checker.htmlin your web browser - The app works entirely in the browser - no server required!
- Fork this repository to your GitHub account
- Go to Settings > Pages in your repository
- Under Source, select your branch (e.g.,
main) and root folder (/) - Access your app at
https://<your-username>.github.io/<repo-name>/ - Update the demo link in this README with your actual URL
This repository includes comprehensive GitHub Actions workflows to automatically keep both driver and server version data up-to-date:
- ๐ Scheduled Driver Updates - Individual drivers update daily at staggered times to avoid API rate limits
- ๐ฆ Bulk Driver Updates - Weekly comprehensive updates of all drivers
- ๐๏ธ Monthly Server Updates - MongoDB server versions updated monthly from official support policy
- ๐ฏ Selective Updates - Manual triggers for specific drivers or combinations
- ๐ Smart Merging - Only adds new releases, preserves existing data
- โก Force Rebuild - Option to completely recreate data files with all available releases
- ๐ก๏ธ Rate Limit Handling - Built-in retry logic and delays to respect GitHub API limits
- ๐ Comprehensive Logging - Detailed workflow summaries and commit messages
You can manually update data anytime:
- Single Driver: Go to Actions โ "Update [Language] Driver" โ Run workflow
- All Drivers: Go to Actions โ "Update Driver Data" โ Run workflow
- Bulk Driver Operations: Go to Actions โ "Bulk Update All Drivers" โ Run workflow
- Server Versions: Go to Actions โ "Update MongoDB Server Versions" โ Run workflow
- Test System: Go to Actions โ "Test Driver Update" โ Run workflow
- Individual drivers: Updated daily at staggered times (1:00-5:30 AM UTC)
- Bulk driver updates: Weekly on Sundays at 6:00 AM UTC
- Server versions: Monthly on the 1st at 8:00 AM UTC
- Manual updates: Available anytime via GitHub Actions interface
- Version limits: Each driver maintains up to 100 most recent versions
- Driver Versions: GitHub Releases API from official MongoDB repositories
- Server Versions: MongoDB's official support policy page
- Fallback Data: Built-in fallback data for server versions if web scraping fails
For detailed workflow documentation, see .github/workflows/README.md.## ๐ Updating Driver Data
Note: Driver data is now automatically updated via GitHub Actions. Manual updates are only needed for custom modifications or troubleshooting.
Driver version data is sourced from official MongoDB GitHub repositories. To update manually:
-
Automated Updates (Recommended): Use the GitHub Actions workflows described above
-
Manual API Fetching: The data can be refreshed by fetching from GitHub APIs:
https://api.github.com/repos/mongodb/mongo-<driver>-driver/releases
-
Manual File Updates: Edit the JSON files in the
data/directory following the format shown above -
Adding New Drivers:
- Create a new JSON file in
data/with driver version information - Add the driver to the GitHub Actions matrix in workflow files
- Update the driver selection dropdown in the HTML file
- Add appropriate styling and logos if desired
- Create a new JSON file in
- Frontend: Vanilla HTML5, CSS3, and JavaScript (ES6+)
- Styling: Modern CSS with custom properties, flexbox, and advanced selectors
- Version Parsing:
semverlibrary (via CDN) with fallback regex - Data Format: JSON for driver and server version information
- Icons: Unicode symbols and custom CSS styling
- Theming: CSS custom properties with automatic dark/light mode detection
- No Dependencies: Works entirely in the browser without build tools or frameworks
- CSS Custom Properties - Dynamic theming with automatic dark/light mode
- Progressive Enhancement - Graceful degradation for older browsers
- CSS Grid & Flexbox - Modern layout techniques for responsive design
- Smooth Animations - CSS transitions for hover effects and theme switching
- ES6+ Features - Arrow functions, async/await, destructuring, template literals
- Event Delegation - Efficient event handling for dynamic content
- Custom Dropdown Component - Full keyboard navigation and accessibility
- Real-time Validation - Debounced input processing with visual feedback
- Progressive Disclosure - Form elements enable sequentially to guide users
- Contextual Help - Dynamic help text that updates based on selections
- Error Prevention - Validation prevents invalid combinations before submission
- Visual Feedback - Icons and colors provide immediate status indication
Contributions are welcome! Here are some ways you can help:
- Create driver data files following the established JSON format
- Update the main HTML file to include the new driver option
- Add appropriate styling and branding
- Keep driver version data up-to-date with official releases
- Verify MongoDB server lifecycle dates
- Report any compatibility issues or discrepancies
- Improve the visual design and user experience
- Add new features like version comparison charts
- Optimize for mobile devices and accessibility
- Optimize performance and loading times
- Add unit tests for compatibility logic
- Improve error handling and user feedback
To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.