Skip to content
Aaron Coburn edited this page Jun 27, 2019 · 59 revisions

Trellis is a modular LDP server that emphasizes both scalability and conformance with Web standards.

The architecture of Trellis supports scaling out a system horizontally, both to support large quantities of data, data redundancy and high server loads. Plans for new features are described in the Development Roadmap.

Downloads

Downloads and installation instructions are available at the project website. This is the best and easiest way to install Trellis on a linux platform. When installing Trellis on other platforms, please refer to the Manual Installation page.

The Trellis project has also started publishing Docker containers on Docker Hub for both the RDBMS- and Triplestore-based servers. These containers follow the tip of development, currently at 0.9.0-SNAPSHOT. Beginning with the 0.8 release, stable containers that track the released versions of Trellis will also be published.

For developers extending Trellis, all Java components are available on Maven Central. They can be included in a Maven project with these coordinates:

<dependency>
    <groupId>org.trellisldp</groupId>
    <artifactId>trellis-api</artifactId>
    <version>0.8.3</version>
</dependency>

Core Features

Resources are managed by means of a RESTful HTTP API, following the Linked Data Platform specification. Creation, modification and deletion operations are mapped to standard HTTP methods that a client can use to interact with server resources.

An HTTP client is also able to retrieve the historical state of a resource at any arbitrary point in time. This is done by following the interaction models of the Memento specification. For more information and examples of how a client interacts with versions of a resource, please refer to the resource versioning document.

In addition to accessing historical versions of a resource, it is also useful to understand who made what change at what point in time. This information is made available to HTTP clients with a provenance (audit) feature that is part of every Trellis resource.

For content that is stored for years or decades, it is often important to be able to verify that the stored bits have not been changed or tampered with. Trellis provides a mechanism that can be used to validate the content of binaries.

Authentication and Authorization

Clients can authenticate to a Trellis repository with basic auth, token-based (JWT) auth or they can access the server anonymously. Each mechanism can be turned on or off with some simple runtime configuration values. More information about how Trellis authenticates users can be found on the Authentication page.

After a client is authenticated and a WebID is assigned to the agent, Authorization decisions can be controlled with WebAC, an RDF vocabulary for defining access to resources. For more information and examples, please visit the Authorization page.

External integrations

Trellis does not do everything. There will naturally be a desire to make use of external systems, such as a search engine or a triple store. Trellis makes it easy to support real-time integrations of such external components by publishing a notification every time a resource is added, modified or deleted. These notifications conform to the Activity Streams 2.0 specification.

Clone this wiki locally