0.0.002
ddat interop with dat js cable interop with cabal js ddat's frontend = dat-thang cable fe = cable-thang dillo support based on cel's dillo-dat bootstrap node xplatform support Signed-off-by: divo <418@cryspace.space>
This commit is contained in:
1 parent
f0f91540be
commit
b735900f2e
323 files changed
+134347
-343
No files matched your search
@@ -0,0 +1,92 @@
|
||||
# DAT protocol plugin for Dillo
|
||||
|
||||
This repository builds the standalone Dillo Protocol Interface (DPI) plugin for
|
||||
`dat://` archives. It is kept separate from the dat-thang application repository
|
||||
so it can be built, packaged, and proposed to Dillo as an independent plugin.
|
||||
|
||||
The plugin implements the Dillo DPI server protocol and serves archive pages
|
||||
from the C implementation. Archive contents and metadata are read through SLEEP;
|
||||
`dat.scm` is parsed as S-expressions with the embedded S7 reader and is never
|
||||
evaluated as executable archive code. The networking identity is the Cesspool
|
||||
protocol token in `NETWORK_PROTOCOL`. Dat-DNS is the project's archive-name
|
||||
mapping and is not public DNS.
|
||||
|
||||
## Build requirements
|
||||
|
||||
- A C99 compiler, GNU Make, and binutils (`objcopy`)
|
||||
- `pkg-config`
|
||||
- libsodium and libcurl development headers and libraries
|
||||
- Dillo 3.0.5 or newer with its DPI daemon (`dpid`)
|
||||
|
||||
On Debian-like systems, the build libraries are commonly provided by
|
||||
`libsodium-dev` and `libcurl4-openssl-dev`; package names vary by distribution.
|
||||
|
||||
Build the plugin:
|
||||
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
The result is `build/dat.dpi`. The build output is ignored by Git.
|
||||
|
||||
## Install for one user
|
||||
|
||||
```sh
|
||||
make install-user DPIDIR=/path/to/dillo/dpi
|
||||
```
|
||||
|
||||
This installs `~/.dillo/dpi/dat/dat.dpi`. If `~/.dillo/dpidrc` does not exist, it creates one with `dpi_dir` set to the supplied `DPIDIR`; choose the system DPI directory used by your Dillo installation. It then adds this association to
|
||||
`~/.dillo/dpidrc` if it is not already present:
|
||||
|
||||
```ini
|
||||
proto.dat=dat/dat.dpi
|
||||
```
|
||||
|
||||
Restart Dillo's plugin daemon (`dpidc stop`, then open Dillo again), and navigate
|
||||
to a `dat://` archive address. User plugins are searched before the configured
|
||||
system DPI directory.
|
||||
|
||||
## System install
|
||||
|
||||
```sh
|
||||
sudo make install
|
||||
```
|
||||
|
||||
By default, this installs to `/usr/local/lib/dillo/dpi/dat/dat.dpi`. Add the
|
||||
following line to `~/.dillo/dpidrc` (or the system `dpidrc` used by your Dillo
|
||||
installation), then restart `dpid`:
|
||||
|
||||
```ini
|
||||
proto.dat=dat/dat.dpi
|
||||
```
|
||||
|
||||
Override paths as needed, for example:
|
||||
|
||||
```sh
|
||||
make install PREFIX=/usr DPIDIR=/usr/lib/dillo/dpi DESTDIR=/tmp/package-root
|
||||
```
|
||||
|
||||
## Protocol/version behavior
|
||||
|
||||
The plugin accepts legacy hexadecimal and compact Base32768 Dat keys. A `+N`
|
||||
version suffix selects the requested archive version, matching the versioned
|
||||
navigation supported by the C archive implementation. The plugin accesses
|
||||
archives through the configured Cesspool networking layer when content is not
|
||||
available locally.
|
||||
|
||||
## Dillo plugin integration
|
||||
|
||||
Dillo plugins are independent programs using the DPI protocol. Dillo searches
|
||||
for `.dpi` executables in user and system DPI directories and associates a URL
|
||||
scheme through `proto.<scheme>=<relative-plugin-path>` in `dpidrc`. See the Dillo
|
||||
User Manual's Plugins and Dpidrc sections for the browser-side configuration.
|
||||
|
||||
The Dillo project requests plugin proposals as a repository link and short
|
||||
description. This repository is prepared for that review; it has no configured
|
||||
remote and has not been submitted upstream.
|
||||
|
||||
## Source and license
|
||||
|
||||
The C implementation and required headers are copied from the dat-thang source
|
||||
project. This repository carries the project's GNU AGPL v3 license. The bundled
|
||||
S7 source retains its upstream notices in `src/s7.c`.
|
||||
Reference in new issue
Block a user