10fe204c9e
Adds a "mode" to channels, which can be set to either %json (current behavior) or %jam. For %jam channels, aside from the SSE framing, all communication happens through @uw-encoded jammed nouns. This applies to both outgoing channel events, as well as incoming channel requests. We choose @uw-style encoding because raw bytestreams are fragile and cannot work inside the SSE stream context. Currently, a separate endpoint (/~/channel-jam/etc) is used to indicate %jam as the desired mode for a channel. We will probably want to make this a bit cleaner, not least because it's not currently implemented as a formal standalone endpoint, but also to give it stronger aesthetic equivalence with the existing channel endpoint. Putting the mode in the file extension is a tempting option here, but semantically not quite right. Connecting to the same channel across multiple modes is currently supported, but it's untested, and unclear whether this is desirable or not. |
||
---|---|---|
.github | ||
bin | ||
doc/spec | ||
extras | ||
nix | ||
pkg | ||
sh | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.ignore | ||
.mailmap | ||
.stylish-haskell.yaml | ||
CONTRIBUTING.md | ||
default.nix | ||
LICENSE.txt | ||
MAINTAINERS.md | ||
Makefile | ||
README.md | ||
shell.nix | ||
vere-version |
Urbit
Urbit is a personal server stack built from scratch. It has an identity layer (Azimuth), virtual machine (Vere), and operating system (Arvo).
A running Urbit "ship" is designed to operate with other ships peer-to-peer. Urbit is a general-purpose, peer-to-peer computer and network.
This repository contains the Arvo Kernel
For the Runtime, see Vere. For more on the identity layer, see Azimuth. To manage your Urbit identity, use Bridge.
Install
To install and run Urbit, please follow the instructions at urbit.org/getting-started. You'll be on the live network in a few minutes.
Contributing
Contributions of any form are more than welcome! Please take a look at our contributing guidelines for details on our git practices, coding styles, and how we manage issues.
You might also be interested in joining the urbit-dev mailing list.
Release
For details about our release process, see the maintainers guidelines