Top Related Projects
Proton Mail Bridge application
:love_letter: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
:love_letter: An extensible desktop mail app built on the modern web. Forks welcome!
Tuta is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.
Quick Overview
Hydroxide is a third-party, open-source ProtonMail bridge, IMAP/SMTP server, and CardDAV server. It allows users to access their ProtonMail accounts using standard email clients and protocols, providing an alternative to the official ProtonMail Bridge.
Pros
- Free and open-source alternative to the official ProtonMail Bridge
- Supports IMAP, SMTP, and CardDAV protocols
- Cross-platform compatibility (Linux, macOS, Windows)
- Lightweight and efficient
Cons
- Unofficial solution, not supported by ProtonMail
- May have security implications as it requires handling of encryption keys
- Potential for breaking changes due to ProtonMail API updates
- Limited documentation and community support compared to official solutions
Getting Started
To get started with Hydroxide:
- Install Go (version 1.16 or later)
- Clone the repository:
git clone https://github.com/emersion/hydroxide.git
- Build the project:
cd hydroxide go build ./cmd/hydroxide
- Initialize Hydroxide with your ProtonMail account:
./hydroxide auth <protonmail-username>
- Start the IMAP/SMTP server:
./hydroxide serve
For more detailed instructions and configuration options, refer to the project's README file on GitHub.
Competitor Comparisons
Proton Mail Bridge application
Pros of proton-bridge
- Official ProtonMail client, ensuring compatibility and support
- More feature-rich, including calendar and contacts sync
- Regular updates and maintenance from the ProtonMail team
Cons of proton-bridge
- Closed-source, limiting transparency and community contributions
- Requires a paid ProtonMail account for full functionality
- Heavier resource usage compared to hydroxide
Code comparison
hydroxide:
func (b *Bridge) Login(username, password string) error {
auth, err := protonmail.NewAuth(b.client, username, password)
if err != nil {
return err
}
b.auth = auth
return nil
}
proton-bridge:
func (b *Bridge) Login(username, password string) error {
// Actual code not available due to closed-source nature
// Hypothetical implementation:
auth, err := protonmail.Authenticate(b.client, username, password)
if err != nil {
return err
}
b.auth = auth
return nil
}
Note: The proton-bridge code is hypothetical due to its closed-source nature, while hydroxide's code is publicly available.
:love_letter: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Pros of Mailspring
- User-friendly GUI with a modern, polished interface
- Cross-platform support (Windows, macOS, Linux)
- Advanced features like contact profiles, link tracking, and snoozing
Cons of Mailspring
- Closed-source core, limiting customization options
- Requires a Mailspring ID for some features
- Heavier resource usage compared to lightweight alternatives
Code Comparison
Hydroxide (Go):
func (b *Bridge) handleLogin(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
twoFactor := r.FormValue("twofactor")
// ... (authentication logic)
}
Mailspring (JavaScript):
async function handleAuthRequest(req, res) {
const { username, password, twoFactorCode } = req.body;
try {
const authResult = await authenticateUser(username, password, twoFactorCode);
res.json(authResult);
} catch (error) {
res.status(401).json({ error: 'Authentication failed' });
}
}
Summary
Hydroxide is a lightweight, open-source bridge for ProtonMail, focusing on simplicity and privacy. It's command-line based and ideal for tech-savvy users who prefer minimal resource usage.
Mailspring offers a feature-rich, user-friendly email client with a polished GUI, suitable for users who want a modern email experience across multiple platforms. However, it has a closed-source core and may require more system resources.
The code comparison shows Hydroxide's Go implementation for handling logins, while Mailspring uses JavaScript with async/await for authentication requests.
:love_letter: An extensible desktop mail app built on the modern web. Forks welcome!
Pros of Nylas Mail
- Full-featured email client with a modern, user-friendly interface
- Cross-platform support (Windows, macOS, Linux)
- Extensive plugin ecosystem for customization and additional features
Cons of Nylas Mail
- Discontinued project with no active development or support
- Potential security concerns due to lack of updates
- Requires a Nylas account and syncs data to Nylas servers
Code Comparison
Nylas Mail (JavaScript):
import { React } from 'nylas-exports';
import { RetinaImg } from 'nylas-component-kit';
class MyComponent extends React.Component {
render() {
return <RetinaImg name="my-icon.png" mode={RetinaImg.Mode.ContentPreserve} />;
}
}
Hydroxide (Go):
package main
import (
"github.com/emersion/go-imap"
"github.com/emersion/go-imap/client"
)
func main() {
c, err := client.DialTLS("imap.example.org:993", nil)
if err != nil {
log.Fatal(err)
}
defer c.Logout()
}
While Nylas Mail offers a rich user interface and plugin system, it's no longer maintained. Hydroxide, on the other hand, is an actively developed IMAP and SMTP bridge focusing on privacy and security. Nylas Mail uses JavaScript and React for its frontend, while Hydroxide is written in Go and provides a lower-level API for email protocols.
Tuta is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.
Pros of Tutanota
- Full-featured email client with end-to-end encryption
- User-friendly web and mobile interfaces
- Active development and regular updates
Cons of Tutanota
- Closed-source server-side code
- Limited integration with third-party email clients
- Requires users to use Tutanota's ecosystem
Code Comparison
Tutanota (TypeScript):
export function encryptMessage(message: string, publicKey: string): string {
// Encryption logic
return encryptedMessage;
}
Hydroxide (Go):
func EncryptMessage(message []byte, publicKey []byte) ([]byte, error) {
// Encryption logic
return encryptedMessage, nil
}
Key Differences
- Hydroxide is a bridge for using ProtonMail with any IMAP/SMTP client, while Tutanota is a complete email service
- Tutanota focuses on user-friendly interfaces, while Hydroxide prioritizes compatibility with existing email clients
- Hydroxide is fully open-source, whereas Tutanota has closed-source server components
Use Cases
- Choose Tutanota for a secure, user-friendly email experience with built-in encryption
- Opt for Hydroxide if you prefer using your existing email client while accessing ProtonMail
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
hydroxide
A third-party, open-source ProtonMail bridge. For power users only, designed to run on a server.
hydroxide supports CardDAV, IMAP and SMTP.
Rationale:
- No GUI, only a CLI (so it runs in headless environments)
- Standard-compliant (we don't care about Microsoft Outlook)
- Fully open-source
Feel free to join the IRC channel: #emersion on Libera Chat.
How does it work?
hydroxide is a server that translates standard protocols (SMTP, IMAP, CardDAV)
into ProtonMail API requests. It allows you to use your preferred e-mail clients
and git-send-email
with ProtonMail.
+-----------------+ +-------------+ ProtonMail +--------------+
| | IMAP, SMTP | | API | |
| E-mail client <-------------> hydroxide <--------------> ProtonMail |
| | | | | |
+-----------------+ +-------------+ +--------------+
Setup
Go
hydroxide is implemented in Go. Head to Go website for setup information.
Installing
Start by installing hydroxide:
git clone https://github.com/emersion/hydroxide.git
go build ./cmd/hydroxide
Then you'll need to login to ProtonMail via hydroxide, so that hydroxide can retrieve e-mails from ProtonMail. You can do so with this command:
hydroxide auth <username>
Once you're logged in, a "bridge password" will be printed. Don't close your terminal yet, as this password is not stored anywhere by hydroxide and will be needed when configuring your e-mail client.
Your ProtonMail credentials are stored on disk encrypted with this bridge password (a 32-byte random password generated when logging in).
Usage
hydroxide can be used in multiple modes.
Don't start hydroxide multiple times, instead you can use
hydroxide serve
. This requires ports 1025 (smtp), 1143 (imap), and 8080 (carddav).
SMTP
To run hydroxide as an SMTP server:
hydroxide smtp
Once the bridge is started, you can configure your e-mail client with the following settings:
- Hostname:
localhost
- Port: 1025
- Security: none
- Username: your ProtonMail username
- Password: the bridge password (not your ProtonMail password)
CardDAV
You must setup an HTTPS reverse proxy to forward requests to hydroxide
.
hydroxide carddav
Tested on GNOME (Evolution) and Android (DAVDroid).
IMAP
â ï¸ Warning: IMAP support is work-in-progress. Here be dragons.
For now, it only supports unencrypted local connections.
hydroxide imap
License
MIT
Top Related Projects
Proton Mail Bridge application
:love_letter: A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
:love_letter: An extensible desktop mail app built on the modern web. Forks welcome!
Tuta is an email service with a strong focus on security and privacy that lets you encrypt emails, contacts and calendar entries on all your devices.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot