H5P Technical Overview
In this document, you'll get an overview of the various components of H5P and their responsibilities.
H5P consists of the following main components:
- The H5P Libraries
- The H5P Core
- The H5P Editor
- The H5P platform integrations
- The H5P Hub (coming soon)
- The .h5p file format
The H5P Libraries
These are the building blocks of H5P. There are currently three main types:
- Content type libraries are responsible for the display and behavior of H5P content for end users
- Editor libraries are responsible for providing custom widgets used by authors when editing H5P content
- API libraries are helper libraries
The H5P Core
The H5P Core is responsible for:
- Storing and managing H5P libraries including update features
- Validating content including purifying content (security)
- Saving content
- Cloning content
- Updating content as part of updating H5P libraries
- Loading libraries and content in order to allow the libraries to display the content
- Providing a few API functions for the libraries
- Making xAPI statements from the libraries available for other software
- Validating and storing H5P content that is uploaded as H5P files
The H5P Editor
Responsible for providing editing features for H5P. It reads the data structure and semantics defined in the libraries and generates a form based on this information. It has default widgets for all data types, but libraries may replace the editor's widgets with custom widgets instead, for instance, to provide a WYSIWYG editing experience.
The H5P Platform Integrations
The H5P platform integrations are responsible for providing the H5P Core and H5P Editor with API functions, mainly for data storage, and to use the H5P Core and H5P Editor to provide the features of H5P in a publising platform like WordPress, Drupal or Moodle.
- Guide for creating a platform integration
- The WordPress platform integration
- The Drupal platform integration
- The Moodle platform integration
The H5P Hub
A web service responsible for providing a resource bank for H5P enabled sites. It allows sites to fetch and store H5P content and fetch H5P libraries and updates for content and libraries.
The .h5p file format
Responsible for transporting H5P content including their libraries between H5P sites. May also be used for transporting only libraries.