Solid Developer Tools & Libraries
There are a number of robust developer libraries to save you from re-inventing the wheel. Everyone is invited to contribute new libraries and provide feedback on existing libraries - see how to contribute.
Solid-specific Tools
- Molid - a mock server that can be used for testing apps
- Penny - a file manager for Solid pods
- Shighl - a tool that lets your write simply HTML/JavaScript to interact with a Solid Pod Session, Profile, Inbox, Chat… Session, Profile, Inbox, Chat…
- Solid Data Kitchen - The solid databrowser technology as a stand-alone electron app
- Solid Filemanager - a file manager for Solid pods
- Solid IDE - GUI front-end for Solid document management and syntax-highlighting pod editor
- Solid Shell - command line, interactive shell, and batch processor for Solid document management
Solid-specific JavaScript Libraries
A typical Solid app will perform one or more of these functions using one of the associated libraries:
- login & manage sessions (Authentication Libraries)
- parse & query linked data (Linked Data Libraries)
- manage documents and information flow (Resource Management Libraries)
- provide a user interface (Interface Libraries)
Beginning developers may want to start with one of the interface libraries which provide pre-built components. Advanced developers might want to look at Low Level Libraries and/or participate in the Solid OS project.
- Authentication & Access Control Libraries
- ACL Check - check Web Access Control ACLs
- Inrupt Solid JavaScript Authentication - login and session management
- Solid Auth Fetcher -login and session management
- Solid Node Client - nodejs login/sesseion for Pods & Solid access to local file systems, and other backends
- Linked Data Libraries
- LDflex for Solid A library for making RDF querying easy
- GraphQL-LD for Solid A way to query Linked Data using GraphQL
- rdflib - A library for advanced manipulation of RDF
- Soukai-solid - A Soukai ODM extension adapting Solid to the engine
- Tripledoc - A library for easy manipulation of RDF
See also this cheat sheet for a handy comparison between three commonly used linked data libraries.
- Resource Management Libraries
- Solid File Client create, read, copy, upload & mange files & folders
- Solid Namespace A collection of common RDF namespaces used in the Solid project
- Solid Rest - Solid access to non-Solid spaces such as file systems, browser IndexedDB, and Dropbox
- Inrupt Solid JavaScript Client - Data and access management manipulation by Inrupt
- SDK & Components Libraries
-
Solid OS - Solid as an operating system & databrowser interface
- Solid UI - User Interface widgets and utilities for Solid
- Mashlib - Solid-compatible data mashup library and Data Browser
- Solid Panes - A set of core solid-compatible apps based on solid-ui
- Solid Logic - Core business logic of Solid OS
- Data Kitchen - Solid as a standalone desktop app (experimental)
-
- Comunica - A highly modular and flexible meta query engine for the Web
- graphy.js - a collection of high-performance RDF libraries for JavaScript developers with a focus on usability
- Keychain: for use with Web Cryptography API in Node.js
- OIDC decentralized auth manager
- OIDC provider
- OIDC relying party
- OIDC resource server auth
- rdf-ext - An implementation of RDFJS specifications
Solid-specific Libraries in other languages
Perl
- Web::Solid::Auth - a Perl Solid-OIDC client with a command line tool and example app
Python
- solid-flask - simple “Hello World” Flask app that can read private data from a Solid pod
- solid-file-python - a Python library for creating and managing files and folders in Solid pods
Rust
- solid-warp - simple example of authenticated reads/writes to a Solid pod
Kotlin
- spring-solid-demo - simple example of Solid-OIDC using Spring and Kotlin
Swift
- SolidAuthSwift - Authentication package for a Solid Pod
Related Tools
- EasyRDF converter: Convert RDF from a syntax to another
- Prefix.cc: Dereference prefixes into their full domain name
- Protégé: An ontology editor
Related libraries
-
Python
-
Java
-
PHP
How to contribute
If you have a new tool or library, or have suggested additions or changes for this page, please submit a PR or contact the solidproject.org team.