An implementation of the Urbit runtime
Go to file
2023-01-11 17:24:52 +01:00
.github/workflows Create universal binary for 1.16 x86_64-darwin (#91) 2023-01-11 01:31:51 -05:00
bazel Replace arm64 with aarch64 as canonical identifier for 64-bit ARM architecture (#52) 2023-01-09 14:52:35 -05:00
doc/spec docs: remove http-ports.txt 2022-03-04 19:36:26 -06:00
pkg term: new & improved (#85) 2023-01-11 17:24:52 +01:00
.bazelrc bazel-based continuous integration flow (#21) 2023-01-09 14:44:23 -05:00
.gitignore Replace Xcode-specific sys_includes path in clang-macos-arm64 (#24) 2023-01-09 13:50:20 -05:00
BUILD.bazel Point binary upgrade system back to https://bootstrap.urbit.org/vere (#80) 2023-01-10 15:59:02 -05:00
CONTRIBUTING.md bazel-based continuous integration flow (#21) 2023-01-09 14:44:23 -05:00
DOCKER.md bazel-based continuous integration flow (#21) 2023-01-09 14:44:23 -05:00
INSTALL.md Document build system's dependency on automake and libtool on Linux (#79) 2023-01-10 15:52:19 -05:00
LICENSE.txt Restore toplevel LICENSE.txt file. 2020-01-28 13:24:39 -08:00
MAINTAINERS.md Replace arm64 with aarch64 as canonical identifier for 64-bit ARM architecture (#52) 2023-01-09 14:52:35 -05:00
Makefile build: removes herb from top-level Makefile, shell.nix 2022-06-03 14:40:08 -04:00
README.md Build with musl instead of glibc on Linux (#27) 2023-01-09 13:54:11 -05:00
WORKSPACE.bazel build: update ivory pill 2023-01-10 23:08:47 +01:00

Urbit Runtime

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

Getting Started

For basic Urbit usage instructions, head over to urbit.org. For a high-level overview of the salient aspects of Urbit's architecture, visit developers.urbit.org. You might also be interested in joining the urbit-dev mailing list.

Packages

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

  • pkg/c3: A set of basic utilities for writing Urbit's style of C.
  • pkg/ent: A cross-platform wrapper for getentropy(2).
  • pkg/urcrypt: A standardized interface for calling various cryptographic functions used in the Urbit runtime.
  • pkg/ur: An implementation of jam and cue, Urbit's bitwise noun serialization and deserialization algorithms, respectively.
  • pkg/noun: The Nock virtual machine and snapshotting system.
  • pkg/vere: The I/O drivers, event log, and main event loop.

Build

See INSTALL.md.

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, how we manage issues, and so on.