You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.gmi
+11-11Lines changed: 11 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -13,22 +13,22 @@ More on this in docs/about.gmi
13
13
## Features
14
14
15
15
* Multi-Protocol Server: Custom Tokio+Rustls implementation handling Gemini and Titan natively over TLS, alongside plaintext Spartan and Nex/NPS TCP listeners. Enabled protocols and ports can be configured.
16
-
* Linked Data Store: Consumes RDF data in Turtle via rio_turtle and holds them into an in-memory store.
16
+
* Linked Data Store: Consumes RDF data in Turtle or RDF/XML via rio and holds them into an in-memory store.
17
17
* Gemtext Mapping: A proposed serialization of RDF to the hypertext format of Gemini, offering a recursively browsable knowledge graph. A condensed syntax, which groups predicates by property, is also supported. The specification is documented in the `docs` directory.
18
18
* External Proxy: Acts as a browser for all the Linked Open Data out there.
19
19
20
20
### External Proxy Features
21
-
* Encoded URLs in the request path are fetched via reqwest.
22
-
* Accept: text/turtle is used for Content Negotiation.
23
-
* Fetched RDF is parsed and rendered.
24
-
* Links to other external resources are re-encoded to point back to the proxy.
25
-
* You can provide a custom TLS certificate via the --cert flag.
21
+
* Encoded URLs in the request path are fetched via reqwest.
22
+
* Accept: text/turtle is used for Content Negotiation.
23
+
* Fetched RDF is parsed and rendered.
24
+
* Links to other external resources are re-encoded to point back to the proxy.
25
+
* You can provide a custom TLS certificate via the --cert flag.
* Move to RDF support via Sophia and access existing triple stores.
134
134
* SPARQL API? Only if it can be implemented without compromising the basic principles of the Small Web.
135
-
* Gemtext: support for quads, blank node expansion, RDF-star.
135
+
* Gemtext: also render statements for subjects other than the one in the request URI.
136
136
* Gemtext: context-sensitive links in Gemtext: make them spartan:// or gemini:// depending on the client request.
137
-
* Gemtext: where possible, add support for language-specific labels per client request (we don't have the luxury of an Accept-Language header here).
138
-
* Not every Linked Data server offers Turtle: support negotiation of at least RDF/XML, too.
137
+
* Gemtext: where possible, add support for language-specific labels per client request (we don't have the luxury of an Accept-Language header here, though there is a "lang" parameter in Gemini).
138
+
* Gemtext: support for quads, blank node expansion, RDF-star.
139
139
* Investigate whether it's worth supporting good old Gopher, too.
140
140
* Consider Chaykin extensions to existing Small Web servers in Rust, like Agate.
Copy file name to clipboardExpand all lines: README.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,8 +11,8 @@ More on this in [docs/about.md](docs/about.md).
11
11
12
12
## Features
13
13
-**Multi-Protocol Server**: Custom Tokio+Rustls implementation handling Gemini and Titan natively over TLS, alongside plaintext Spartan and Nex/NPS TCP listeners. Enabled protocols and ports can be configured.
14
-
-**Linked Data Store**: Consumes RDF data in Turtle via `rio_turtle` and holds them into an in-memory store.
15
-
-**Gemtext Mapping**: A proposed serialization of RDF to the hypertext format of Gemini, offering a recursively browsable knowledge graph. A condensed syntax, which groups predicates by property, is also supported. The specification is documented at [docs/rdf_gemtext_spec.md](docs/rdf_gemtext_spec.md).
14
+
-**Linked Data Store**: Consumes RDF data in Turtle or RDF/XML via `rio` and holds them into an in-memory store.
15
+
-**Gemtext Mapping**: A proposed serialization of RDF to the hypertext format of Gemini, offering a recursively browsable knowledge graph. A condensed syntax, which groups predicates by property, is also supported. The specification is documented at [gemtext-rdf/docs/rdf_gemtext_spec.md](gemtext-rdf/docs/rdf_gemtext_spec.md).
16
16
-**External Proxy**: Acts as a browser for all the Linked Open Data out there.
17
17
- Encoded URLs in the request path are fetched via `reqwest`.
18
18
-`Accept: text/turtle` is used for Content Negotiation.
@@ -22,7 +22,7 @@ More on this in [docs/about.md](docs/about.md).
22
22
23
23
## Setup & Running
24
24
Pretty standard stuff:
25
-
1.**Dependencies**: Rust/Cargo>1.78; Mainly `tokio`, `rustls`, `rio_turtle`, `rio_api`, and `reqwest`.
25
+
1.**Dependencies**: Rust/Cargo>1.78; Mainly `tokio`, `rustls`, `rio_turtle`, `rio_xml`, `rio_api`, and `reqwest`.
26
26
2.**Build**:
27
27
```bash
28
28
cd server
@@ -39,7 +39,7 @@ Pretty standard stuff:
39
39
```bash
40
40
cargo run
41
41
```
42
-
The server listens on `127.0.0.1:1965` by default (for Gemini/Titan). Go there with your favourite Gemini client, like [Lagrange](https://gmi.skyjake.fi/lagrange/) (simple, stylish, with support for Spartan but not Titan) or [Alhena](https://metaloupe.com/alhena/alhena.html) (not as fancy, but flexible and multi-protocol).
42
+
The server listens on `127.0.0.1:1965` by default (for Gemini/Titan). Go there with your favourite Gemini client, like [Lagrange](https://gmi.skyjake.fi/lagrange/) (simple, stylish, with support for Spartan and, recently, for Titan as well) or [Alhena](https://metaloupe.com/alhena/alhena.html) (not as fancy, but flexible and multi-protocol).
43
43
44
44
To run it in a Docker container (mapping the Spartan port to one that doesn't require a super user):
45
45
```bash
@@ -115,10 +115,10 @@ Lots and lots, but mainly:
115
115
- Move to RDF support via [Sophia](https://docs.rs/sophia/) and access existing triple stores.
116
116
- SPARQL API? Only if it can be implemented without compromising the basic principles of the Small Web.
117
117
- Gemtext serialization improvements:
118
-
-Support for quads, blank node expansion, RDF-star.
118
+
-Also render statements for subjects other than the one in the request URI.
119
119
- Context-sensitive links in Gemtext: make them `spartan://` or `gemini://` depending on the client request.
120
-
- Where possible, add support for language-specific labels per client request (we don't have the luxury of an `Accept-Language` header here).
121
-
- Not every Linked Data server offers Turtle: support negotiation of at least RDF/XML, too.
120
+
- Where possible, add support for language-specific labels per client request (we don't have the luxury of an `Accept-Language` header here, though there is a `lang` parameter in Gemini).
121
+
- Support for quads, blank node expansion, RDF-star.
122
122
- Investigate whether it's worth supporting good old Gopher, too.
123
123
- Consider Chaykin extensions to existing Small Web servers in Rust, like [Agate](https://github.com/mbrubeck/agate).
0 commit comments