summaryrefslogtreecommitdiff
path: root/vere/README.md
blob: 5f2e0ca6b4de591dbdb0c6a855a0ed9210ce7ac2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Urbit Runtime

[Urbit][urbit] is a personal server stack built from scratch. This repository
contains [Urbit's runtime environment][vere], the lowest layer of the Urbit
stack, which includes the Nock virtual machine, I/O drivers, event log, and
snapshotting system.

## Getting Started

If you've never used Urbit before, head over [here](get-on-urbit) to get on
Urbit.

For a high-level overview of the salient aspects of Urbit's architecture, visit
[docs.urbit.org][docs].

## Packages

Urbit's runtime is broken down into a few separate layers, each of which is
defined in its own package:

- [`pkg/c3`](pkg/c3): A set of basic utilities for writing Urbit's style of C.
- [`pkg/ent`](pkg/ent): A cross-platform wrapper for `getentropy(2)`.
- [`pkg/ur`](pkg/ur): An implementation of [jam][jam] and [cue][cue], Urbit's
  bitwise noun serialization and deserialization algorithms, respectively.
- [`pkg/noun`](pkg/noun): The Nock virtual machine and snapshotting system.
- [`pkg/vere`](pkg/vere): The I/O drivers, event log, and main event loop.


## Build

See [INSTALL.md](INSTALL.md).

## Contributing

Contributions of any form are more than welcome. Please take a look at our
[contributing guidelines][contributing] for details on our git practices, coding
styles, how we manage issues, and so on.

[docs]: https://docs.urbit.org
[contributing]: https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md
[cue]: https://docs.urbit.org/hoon/stdlib/2p#cue
[get-on-urbit]: https://docs.urbit.org/get-on-urbit
[jam]: https://docs.urbit.org/hoon/stdlib/2p#jam
[urbit]: https://urbit.org
[vere]: https://docs.urbit.org/build-on-urbit/runtime