on 514b5fc help sign in
urbit.org/content/grants/urbit-http-interface-java-edition.md
66 lines 2.2 kB history raw
1+++
2title = "Urbit HTTP Interface — Java Edition"
3date = "2020-10-19"
5[taxonomies]
6grant_type = [ "Proposal" ]
7grant_category = [ "Core Dev" ]
9[extra]
10image = ""
11description = "This proposal seeks to implement an HTTP interface to an Urbit instance in Java, and also seeks to build various related tooling."
12reward = "3 stars"
13assignee = "~sipfyn-pidmex"
14id = "288224550"
15completed = false
16canceled = true
17link = ""
18+++
20# Urbit Interface — Java Edition
22This proposal seeks to create an API to interact with an Urbit ship over HTTP written in Java.
24One benefit of a Java implementation would be that any JVM languages (Clojure, Kotlin, etc.) that support the use of Java libraries can also make use of it.
26## Outline
28This comprises three parts:
301. **Basic HTTP Interface** - Responsible for sending and receiving JSON to/from an Urbit ship
322. **Graph Store Interface** - Interface to the `graph-store` Urbit API on top of the HTTP Interface
343. **Additional Agent Interfaces** - Interface to the `group-store` and `metadata-store` Gall agents
36In addition, we will seek to document the code throughout the evolution of the proposal, providing READMEs along the way.
38## Plan
401. Study existing implementations and documentation
412. Create smallest initial working product for each milestone
423. Test it out with more experienced Urbit developers
434. Finalize and write documentation
45Qualifications:
47I'm qualified to implement this because I am experienced with Java. I have used Java for 3+ years, written robotics code using Java, and have experience using the Gradle build system.
49My github profile is at https://github.com/ynx0, where I have written software projects in other languages, such as a parser/interpreter combo for a fantasy assembly language.
51## Milestones
53### Basic HTTP Interface
551 stars
56Implementation of the HTTP Interface responsible for sending and receiving JSON to/from an Urbit ship
58### Graph Store Interface
601 stars
61Implementation of the interface to `graph-store`, which sits on top of the HTTP Interface
63### Additional Agent Interfaces
651 stars
66Implementation of the `group-store` and `metadata-store` Gall agents