A Hypertext Application Language MediaType library for the JVM.

About HAL and HalBuilder

HAL is a simple way of linking with JSON or XML.

It provides a set of conventions for expressing hyperlinks to, and embeddedness of, related resources - the rest of a HAL document is just plain old JSON or XML.

HAL is a bit like HTML for machines, in that it is generic and designed to drive many different types of application. The difference is that HTML has features for presenting a graphical hypermedia interface to a ‘human actor’, whereas HAL is intended for presenting a machine hypertext interface to ‘automated actors’.

— Taken from the HAL Specification

The HAL format, and the HalBuilder Java library provide a consistent approach to both designing and consuming reusable, and navible REST APIs built on the Java platform.

Getting HalBuilder

HalBuilder is distributed via Maven Central as a set of Apache Maven artifacts.

HalBuilder Modules

Building HalBuilder

The source for HalBuilder and its modules can be found on Github as separate repositories in the HalBuilder Organisation. Each project is an Apache Maven based project.

Contributing to HalBuilder

You can contribute to the HalBuilder project in many ways: discussion on the Google Group, bug reports, feature requests and pull requests on the relevant Github project are also welcone.

Each projects git repository is modeled with the git-flow branching model, so any pull requests should be against the appropriate "develop" branch.

HalBuilder and its various modules are released under the Apache V2 license.