Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeff-zucker/solid-rest-browser
treats a browser's localStorage as a mini Solid server
https://github.com/jeff-zucker/solid-rest-browser
Last synced: 30 days ago
JSON representation
treats a browser's localStorage as a mini Solid server
- Host: GitHub
- URL: https://github.com/jeff-zucker/solid-rest-browser
- Owner: jeff-zucker
- License: mit
- Created: 2019-04-15T18:29:11.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-05-05T23:14:08.000Z (over 5 years ago)
- Last Synced: 2024-09-24T16:46:25.971Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 65.4 KB
- Stars: 6
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Solid REST Browser
## treat a browser's localStorage as a mini Solid server
[![NPM](https://nodei.co/npm/solid-rest-browser.png)](https://nodei.co/npm/solid-rest-browser/)
This library supports the use of the app:// scheme to create and access resources and containers stored in a browser's localStorage (and eventually indexedDB and other kinds of storage) using the same methods as a Solid pod. Using this library, apps may read and write configuration preferences and other data within the user's browser using rdflib, query-ldflex, and any library that uses solid-auth-client's fetch. It can also serve as a mini-pod allowing users with no pod and no web-server to interact with Solid apps as though they had a pod. Most calls will return what you expect from a Solid server, including, on fetch of a folder, a Turtle representation of a container and the resources it contains.
The library should work in all modern browsers and runs fine on iPhone and Android.
**See [a live demo](https://jeff-zucker.github.io/solid-rest-browser/)!**
## Installation and Usage
Just include the library and solid-auth-client in script tags, then use rdflib, query-ldflex or any other Solid library's methods to access app:// URLs the same as you would https:// URLs. All methods should work except those that require PATCH (e.g. rdflib's UpdateManager).
// import rdflib or other Solid libraries here
// use most of the Solid library's methods with app:// URLs ...**IMPORTANT** : solid-auth-client has the hook to use this library but it hasn't been npm'd yet so this library will need to be used directly until it propagates; see the (demo code)[./index.html) for examples of using it directly with rdflib.
# Storage and Naming Conventions
Each app origin (protocol+domain+port) has its own siloed localStorage and can not see or change the localStorage of other apps. For purposes of this library, localhost:// and file:// origins work the same as remote origins.
Here is how URLs will be treated :
URL = scheme + storageType + resourcePath
scheme = app://
storageType = "ls" for localStorage
"id" for indexedDB (not yet implemented)
... possible othersresourcePath = the path to the container or resource
The root container for any app is
app://ls/
But an app at originX will be looking at app://ls/ within originX's localStorage silo whereas an app at originY will be looking at a different app://ls/ in its own silo.
**Important** : Container names must always end in slash.
copyright © 2019, Jeff Zucker, may be freely used with an MIT license.