32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
|
# Tilde Friends in depth
|
||
|
# Tilde Friends
|
||
|
|
||
|
## Philosophy
|
||
|
|
||
|
Tilde Friends is a platform for making, running, and sharing web applications.
|
||
|
|
||
|
<!-- When you visit Tilde Friends in a web browser, you are presented with a
|
||
|
terminal interface, typically with a big text output box covering most of the
|
||
|
page and an input box at the bottom, into which text or commands can be
|
||
|
entered. A script runs to produce text output and consume user input.
|
||
|
|
||
|
The script is a Tilde Friends application, and it runs on the server, which
|
||
|
means that unlike client-side JavaScript, it can have the ability to read and
|
||
|
write files on the server or create network connections to other machines.
|
||
|
Unlike node.js or other server-side runtime environments, applications are
|
||
|
limited for security reasons to not interfere with each other or bring the
|
||
|
entire server down.
|
||
|
|
||
|
Above the terminal, an "Edit" link brings a visitor to the source code for the
|
||
|
current Tilde Friends application, which they can then edit, save as their own,
|
||
|
and run. -->
|
||
|
|
||
|
## Architecture
|
||
|
|
||
|
Tilde Friends is a C++ application with a JavaScript runtime that provides restricted access to filesystem, network, and other system resources.
|
||
|
The core process runs a core set of scripts that implement a web server, typically starting a new process for each visitor's session which runs scripts for the active application and stopping it when the visitor leaves.
|
||
|
|
||
|
Only the core process has access to most system resources, but session processes can be given accesss through the core process.
|
||
|
|
||
|
Service processes are identical to session processes, but they are not tied to a user session.
|