salada icon indicating copy to clipboard operation
salada copied to clipboard

A JMAP server

ARCHIVED. This implements a version of JMAP years old, and is likely also a very poor example of how to make a server in Rust. You don't want this.

salada

A JMAP server

What is JMAP?

JMAP is the JSON Mail Access Protocol, an API for accessing mail, calendars and contacts on a server. In simple terms its a HTTP+JSON replacement for IMAP, CalDAV and CardDAV. See jmap.io for more info.

What is salada?

A standalone JMAP server, suitable for development and experimentation. The initial goal is complete coverage of the JMAP spec in a small, fast server that requires minimal configuration (hopefully none!)

Running it

You need the Rust toolchain installed. Get it from http://www.rust-lang.org/

Then:

git clone https://github.com/robn/salada.git
cd salada
cargo run

Once its up and running you can direct JMAP requests to http://localhost:3000/jmap

Status

Currently targeting JMAP spec 2015-06-12.

  • Authentication

    • [ ] Service autodiscovery
    • [ ] Password authentication
    • [ ] OAuth authentication
    • [ ] Endpoint refetch
    • [ ] Revoke access token
  • Accounts

    • [ ] Accounts
    • [ ] Sharing
  • Mail

    • [X] Mailboxes
    • [ ] Messages
    • [ ] Message copy
    • [ ] Message reporting
    • [ ] Message lists (queries/search)
    • [ ] Search snippets
    • [ ] Mail delivery
  • Contacts

    • [X] Contacts
    • [X] Contact groups
  • Calendars

    • [X] Calendars
    • [X] Calendar events
    • [ ] Calendar lists (queries/search)
    • [ ] Alerts
  • Push

    • [ ] EventSource
    • [ ] Push callbacks
  • [ ] File uploads

Credits and license

Copyright (c) 2015 Robert Norris. MIT license. See LICENSE.

Contributing

Pull requests are very welcome! For more general discussions about salada or JMAP, try the jmap-discuss mailing list or #jmap on Freenode IRC.