Skip to content

Commit 6bc0a3b

Browse files
committed
protocol
1 parent 1dbf59e commit 6bc0a3b

File tree

3 files changed

+107
-0
lines changed

3 files changed

+107
-0
lines changed

_journals/2025-03-09_1501.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: March 9th, 2025
3+
date: 2025-03-09, 15:01:07 -07:00
4+
section: journal
5+
link: https://jmap.io
6+
tags:
7+
- email
8+
- JMAP
9+
---
10+
I've recently gone down the rabbit hole of looking at [[JMAP]] (aka JSON Meta Application Protocol) which [[Fastmail]] supports (I signed up). It's a modern http/json protocol being worked on at the [[IETF]], supporting email today, then contacts, calendars, etc

_notes/Fastmail.md

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
link: https://fastmail.com
3+
tags:
4+
- organization
5+
- JMAP
6+
- email
7+
- Australia
8+
wikipedia: https://en.wikipedia.org/wiki/Fastmail
9+
---
10+
Email, contacts, calendaring, and file sharing service.
11+
12+
* [Company about page](https://www.fastmail.com/company/about/)
13+
14+
## [Why Open Internet Standards Are So Important To Your Future with Bron Gondwana](https://www.fastmail.com/digitalcitizen/why-open-internet-standards-are-so-important-to-your-future-with-bron-gondwana/)
15+
16+
Have you ever wondered how the Internet works, how it’s governed, or why some devices and services work together and others don’t? In the final episode of this season, Fastmail CEO, Bron Gondwana answers these questions and more, so you can learn how standards make the Internet better for everyone.
17+
18+
Get a crash course about open standards, how they work, and why we need to support organizations that use them. Bron and show host Fastmail’s CTO, Ricardo Signes, talk about JMAP, an open standard for email that Fastmail’s developers produced, which is moving email forward.
19+
20+
## Wikipedia
21+
22+
### About
23+
24+
Fastmail is an email hosting company based in Melbourne, Australia. In addition to its Fastmail-branded services, the company also operates Topicbox, a mailing list service, and Pobox, an email service it acquired in 2015.
25+
26+
The company was acquired by Opera Software in 2010 but became independent again in 2013 through a staff buyout. Its servers are located in Philadelphia, Pennsylvania and St. Louis, Missouri.
27+
28+
### History
29+
30+
Fastmail was founded in 1999 by Rob Mueller, Bruce Davey, and Jeremy Howard, to provide email service for customers of the Optimal Decisions Group.
31+
32+
The provider's sole product line is email services (and included accessories), but it was owned by Opera Software (best known for its web browser) from 2010 to 2013. Through a staff buyout, the company became fully independent again.
33+
### Technology
34+
35+
The site developers are among active contributors to the widely used Cyrus IMAP open source software project and include the lead developer and maintainer of Perl module Mail::IMAPTalk. Fastmail supported the development of the free software webmail interface Roundcube and developed [[JMAP]] – a new open email protocol.

_notes/JMAP.md

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
link: https://jmap.io
3+
title: JSON Meta Application Protocol
4+
tags:
5+
- specification
6+
- IETF
7+
- email
8+
- JSON
9+
- protocol
10+
github: https://github.com/jmapio
11+
---
12+
JSON Meta Application Protocol
13+
14+
> As an open standard, JMAP is the alternative to proprietary email APIs that only work with Gmail. It’s a much needed modern email standard that makes email more open to innovators like you.
15+
16+
Supported by [[Fastmail]].
17+
18+
## FAQ
19+
20+
Selected entries from the FAQ
21+
### Why use HTTPS/JSON?
22+
23+
The short answer is it's good enough, it's widely understood, and it's by far the easiest thing for developers to adopt. There's support in basically all OSes and programming languages. And it's easy to read and debug.
24+
25+
HTTP doesn't tend to run into firewall issues, and is so commonly used that it has integrations which can help with optimisation (for example, iOS has built-in support for optimising radio usage by batching HTTP calls from different apps where possible, which their mail team have told us they would like to be able to use). This isn't an innate advantage of HTTP, but rather an advantage of its ubiquity.
26+
27+
With GZIP, JSON data is reasonably compact and fast enough to serialise/parse. However, the encoding/transport part of JMAP is not core to its operation, so future specifications could easily add alternatives (e.g. [WebSocket](https://tools.ietf.org/html/rfc6455) instead of HTTPS, [CBOR](http://tools.ietf.org/html/rfc7049) instead of JSON). For the initial version though, HTTPS+JSON makes the most sense.
28+
29+
### End-to-end encryption
30+
31+
A lot of the optimisations for efficient client-server sync require the server to be able to read the message. If everything were encrypted, the server would basically be a dumb blob store. This is particularly bad for mobile, where you only want to sync partial information. Users expect to be able to search their whole archive, so either you need all the data in the client, or the server needs to have access to the data.
32+
33+
JMAP is therefore not introducing any new measures to address end-to-end encryption. The best advice is probably to run your own "JMAP server" on trusted hardware; otherwise you need to sync the entire multi-gigabyte mail spool to all your devices. JMAP is also simple enough that you could run the server on multiple machines with an underlying replication protocol over encrypted links and have that do your smarts.
34+
35+
## IETF
36+
37+
* IETF Working Group <https://datatracker.ietf.org/group/jmap/about/> - now moving on to contacts and calendars
38+
* A JMAP Subprotocol for WebSocket [[RFC8887](https://www.rfc-editor.org/rfc/rfc8887.html)]
39+
* JMAP Blob Management Extension [[RFC9404](https://www.rfc-editor.org/rfc/rfc9404.html)]
40+
- JMAP Quotas [[RFC9425](https://www.rfc-editor.org/rfc/rfc9425.html)]
41+
42+
In development:
43+
- [JMAP Contacts](https://jmap.io/spec-contacts.html)
44+
- [JMAP Calendars](https://jmap.io/spec-calendars.html)
45+
- [JMAP Sharing](https://jmap.io/spec-sharing.html)
46+
- [JMAP Tasks](https://jmap.io/spec-tasks.html)
47+
48+
Data Formats
49+
* JMAP was designed in conjunction with new JSON-based file formats for contacts and calendars, which can also be used standalone or in other protocols.
50+
* JMAP Contacts uses [JSContact (RFC9553)](https://www.rfc-editor.org/rfc/rfc9553.html) as the data format for contacts.
51+
* JMAP Calendars uses [JSCalendar (RFC 8984)](https://www.rfc-editor.org/rfc/rfc8984.html) as the data format for events.
52+
### JSON Meta Application Protocol
53+
54+
The base layer specification for all application types. [RFC8620](https://datatracker.ietf.org/doc/html/rfc8620)
55+
56+
> This document specifies a protocol for clients to efficiently query, fetch, and modify JSON-based data objects, with support for push notification of changes and fast resynchronisation and for out-of-band binary data upload/download.
57+
58+
### JSON Meta Application Protocol (JMAP) for Mail
59+
60+
This is the email specific RFC. [RF8621](https://datatracker.ietf.org/doc/html/rfc8621)
61+
62+
> This document specifies a data model for synchronising email data with a server using the JSON Meta Application Protocol (JMAP). Clients can use this to efficiently search, access, organise, and send messages, and to get push notifications for fast resynchronisation when new messages are delivered or a change is made in another client.

0 commit comments

Comments
 (0)