Selenium WebDriver supports many browsers, both real and headless, and each one requires its own driver that implements WebDriver's wire protocol for that specific browser.
For real browsers:
- Chrome and Chrome on Android uses the ChromeDriver (https://sites.google.com/a/chromium.org/chromedriver/), which is maintained by the Chromium project itself
- Firefox uses the geckodriver (https://github.com/mozilla/geckodriver/)
- Internet Explorer uses the Internet Explorer Driver
- Edge uses Microsoft WebDriver (https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)
- Safari uses SafariDriver (https://webkit.org/blog/6900/webdriver-support-in-safari-10/)
- Opera uses Opera Driver
- iOS (native, hybrid, or mobile web application) ...