foxcpp / foxcpp/go-jmap

JMAP Core server implementation

Open
#4 2 comments 0 reactions 0 assignees View on GitHub
server
Dominant language
Go
Stars
43
Forks
4
PR merge metrics
No merged PRs in 30d

Description

## Things to consider

Below are things I believe would make library more useful.

- go-jmap should avoid enforcing certain storage design and definitely must not provide storage implementation itself. I think it is best to simply translate API requests into corresponding method calls on some interface called "Backend" (see [go-imap](https://github.com/emersion/go-imap) for a good example of how this could be done).

- go-jmap should avoid enforcing certain authentication design and definitely must not provide authentication implementation itself. As with previous point, authentication should be implemented by calling out into user-provided interface implementation.

- go-jmap should rely only on net/http for HTTP server. Use of more advanced frameworks will make it easier to violate the first point.

- JMAP Core, JMAP Mail, etc implementations should be kept independent of each other for extensibility purposes. JMAP is not only about email.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the repository structure and comparing its intended server design with the go-imap example linked in the issue. Define the entry points and interfaces needed for user-provided storage and authentication, then check that HTTP handling uses net/http and that JMAP Core remains independent of other JMAP implementations.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.