foxcpp / foxcpp/go-jmap

JMAP Core implementation

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

Description

Reference: https://jmap.io/spec-core.html
List below is nowhere complete.

- [x] Fundamental types
- [x] Int
- [x] UnsignedInt
- [x] Date
- [x] UTCDate
- [x] Id
- [x] Autodiscovery
- [ ] Structures for base JMAP Core objects
- [x] Session
- [x] Account
- [x] Core Capabilities
- [x] Request-level errors
- [x] Invocation
- [x] Method-level errors
- [x] Decode Invocation "subtypes" using type -> decoder mapping.
- [x] Request
- [x] Response
- [ ] Set-level errors
- [ ] Core request objects
- [ ] Object/get
- [ ] Object/changes
- [ ] Object/set
- [ ] Object/copy
- [ ] Object/query
- [ ] Object/queryChanges
- [x] Core/echo
- [ ] Binary data I/O
- [x] Downloading
- [x] Uploading
- [ ] Blob/Copy method
- [ ] Push
- [ ] StateChange structure
- [ ] PushSubscription structure
- [ ] PushSubscription/get
- [ ] PushSubscription/set
- [ ] Event Source
- [x] Client interface
- [x] Get Session object
- [x] Interface to send request objects directly
- [x] "Call batch builder" interface
- [x] Binary I/O interface
- [ ] Server interface
- [ ] Base backend interface
- [ ] Binary I/O backend interface
- [ ] Method call dispatching

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the JMAP Core specification linked in the issue and choose one unchecked area, such as Set-level errors or a core request object. No source files, tests, or entry points are named, so locate the existing Go implementations for the completed checklist items first. Done means the selected JMAP Core structures or methods are implemented and covered consistently with the existing interfaces.

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
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.