An efficient web server for TiddlyWikis.

Overview

Tiddlywiki Server

Contributor Covenant Matrix Join the chat at https://gitter.im/tiddly-wiki-server/community

This is a web backend for TiddlyWiki. It uses TiddlyWiki's web server API to save tiddlers in a [SQLite database]. It should come with a slightly altered empty TiddlyWiki that includes an extra tiddler store (for saved tiddlers) and the $:/plugins/tiddlywiki/tiddlyweb plugin (which is necessary to make use of the web backend).

Motivation

TiddlyWiki 5 has a NodeJS based webserver that re-uses much of the front-end JavaScript for maximum compatibility. However, this server needs about 70 MB of memory to start, and can easily consume 100 MB or more. This is fine for running on a workstation, but a cheap VPS quickly gets crowded running services of this size.

In rudimetnary benchmarks it looks like tiddly-wiki-server uses about 10 MB of memory (with no optimizations), which I find much more manageable.

Setup

To create a Tiddlywiki backed by this server:

  1. Build or install the executable on your server (e.g. by checking out the repo and running cargo install --path .).
  2. Set up the directory you want to run the server in: a. Copy the empty.html.template file into the directory. b. Create a files/ folder to hold [static files].
  3. Run tiddly-wiki-server.

Contributing

The most valuable way to contribute to this project is currently testing: try to setup a Tiddlywiki with it and see if it behaves the way you'd expect. The server aims to have feature parity with the first-party NodeJS backend; any discrepancy is a potential bug, which I'd be very grateful to have reported!

Code of Conduct

Contributors are expected to abide by the Contributor Covenant.

You might also like...
Self-hosted, fast, and efficient replacement for ngrok, built with Rust

reverse-proxy reverse-proxy is a self-hosted, fast, and efficient replacement for ngrok, built with Rust. The project leverages the power of Tokio and

A simple ping utility written in Rust, that is focused on being size efficient and fast.
A simple ping utility written in Rust, that is focused on being size efficient and fast.

MeowPing MeowPing is a command-line utility for testing network connectivity using ICMP echo requests or TCP connections. It provides similar function

Rust crate for configurable parallel web crawling, designed to crawl for content

url-crawler A configurable parallel web crawler, designed to crawl a website for content. Changelog Docs.rs Example extern crate url_crawler; use std:

 Crusty - polite && scalable broad web crawler
Crusty - polite && scalable broad web crawler

Broad web crawling is an activity of going through practically boundless web by starting from a set of locations(urls) and following outgoing links. Usually it doesn't matter where you start from as long as it has outgoing links to external domains.

A multiplayer web based roguelike built on Rust and WebRTC
A multiplayer web based roguelike built on Rust and WebRTC

Gorgon A multiplayer web-based roguelike build on Rust and WebRTC. License This project is licensed under either of Apache License, Version 2.0, (LICE

The open source distributed web search engine that searches by meaning.

DawnSearch DawnSearch is an open source distributed web search engine that searches by meaning. It uses semantic search (searching on meaning), using

A telnet chat server written in Rust, running on Lunatic.
A telnet chat server written in Rust, running on Lunatic.

Lunatic.chat A telnet chat server written in Rust, running on Lunatic. If you just would like to try it out, join the hosted version with: # US server

server security proxy write by Rust

server-security-proxy server security proxy write by Rust how to use config toml file

Comments
  • Explain differences from standard TiddlyWiki

    Explain differences from standard TiddlyWiki

    The readme mentions:

    It should come with a slightly altered empty TiddlyWiki that includes an extra tiddler store (for saved tiddlers)

    What does this mean?. I can see the empty.html.template ... But there is no info what has been changed.

    From my point of view it shouldn't be needed at all. It would be nice if the server would work with a default wiki.

    documentation 
    opened by pmario 13
  • Add a Gitter chat badge to README.md

    Add a Gitter chat badge to README.md

    nathanielknight/tiddly-wiki-server now has a Chat Room on Gitter

    @nathanielknight has just created a chat room. You can visit it here: https://gitter.im/tiddly-wiki-server/community.

    This pull-request adds this badge to your README.md:

    Gitter

    If my aim is a little off, please let me know.

    Happy chatting.

    PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

    opened by gitter-badger 0
  • Stream the full Wiki?

    Stream the full Wiki?

    On first page load this server sends the whole TiddlyWiki bundle as well as all of the user's tiddlers. This means allocating several megabtyes of memory (which might not be relinquished to the OS). I'd be interested in the performance a solution that streams the response without loading it all into memory.

    enhancement help wanted 
    opened by nathanielknight 0
Releases(v0.1.1)
Owner
Nathaniel Knight
Nathaniel Knight
Getting the token's holder info and pushing to a web server.

Purpose of this program I've made this web scraper so you can use it to get the holder's amount from BSCscan and it will upload for you in JSON format

null 3 Jul 7, 2022
Multithreaded Web Server Made with Rust

Multithreaded Web Server Made with Rust The server listens for TCP connections at address 127.0.0.1:7878. Several pages can be accessed: 127.0.0.1:787

null 2 May 28, 2022
axum-server is a hyper server implementation designed to be used with axum framework.

axum-server axum-server is a hyper server implementation designed to be used with axum framework. Features Conveniently bind to any number of addresse

null 79 Jan 4, 2023
Jex Compiler Server - Server that runs Jex code

Server that compiles and runs Jex code.

furetur 3 Nov 18, 2021
Dav-server-rs - Rust WebDAV server library. A fork of the webdav-handler crate.

dav-server-rs A fork of the webdav-handler-rs project. Generic async HTTP/Webdav handler Webdav (RFC4918) is defined as HTTP (GET/HEAD/PUT/DELETE) plu

messense 30 Dec 29, 2022
DNS Server written in Rust for fun, see https://dev.to/xfbs/writing-a-dns-server-in-rust-1gpn

DNS Fun Ever wondered how you can write a DNS server in Rust? No? Well, too bad, I'm telling you anyways. But don't worry, this is going to be a fun o

Patrick Elsen 26 Jan 13, 2023
QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server.

quicssh-rs ?? quicssh-rs is a QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server. quicss

Jun Ouyang 18 May 5, 2023
A versatile and efficient proxy framework with nice features suitable for various use cases.

A versatile and efficient proxy framework with nice features suitable for various use cases.

null 1.7k Jan 9, 2023
A fast, stable, efficient, and lightweight intranet penetration, port forwarding tool supports multiple connections, cascading proxy, and transmission encryption

A fast, stable, efficient, and lightweight intranet penetration, port forwarding tool supports multiple connections, cascading proxy, and transmission encryption

editso 1.3k Dec 30, 2022
♻ A simple and efficient Gemini-to-HTTP proxy written in Rust.

September A simple and efficient Gemini-to-HTTP proxy written in Rust. Usage Docker $ docker run -d [ -e ROOT="gemini://fuwn.me" ] [ -e PORT="8080"] [

GemRest 10 Jul 2, 2022