Skip to content
Switch branches/tags
Go to file

Latest commit

169: Bump crossbeam-utils from 0.8.1 to 0.8.2 r=stlankes a=dependabot[bot]

Bumps [crossbeam-utils]( from 0.8.1 to 0.8.2.
<summary>Release notes</summary>
<p><em>Sourced from <a href="">crossbeam-utils's releases</a>.</em></p>
<h2>crossbeam-utils 0.8.2</h2>
<li>Deprecate <code>AtomicCell::compare_and_swap</code>. Use <code>AtomicCell::compare_exchange</code> instead. (<a href="">#619</a>)</li>
<li>Add <code>Parker::park_deadline</code>. (<a href="">#563</a>)</li>
<li>Improve implementation of <code>CachePadded</code>. (<a href="">#636</a>)</li>
<li>Add unstable support for <code>loom</code>. (<a href="">#487</a>)</li>
<li><a href=""><code>d709c89</code></a> Merge <a href="">#659</a></li>
<li><a href=""><code>b71b944</code></a> Merge <a href="">#591</a></li>
<li><a href=""><code>b05c62d</code></a> Run sanitizers on CI</li>
<li><a href=""><code>e85d8f4</code></a> Merge <a href="">#655</a></li>
<li><a href=""><code>ae5ca20</code></a> Merge <a href="">#658</a></li>
<li><a href=""><code>d6eb687</code></a> Merge <a href="">#661</a></li>
<li><a href=""><code>5691c5f</code></a> Do not re-run CI on master branch</li>
<li><a href=""><code>82a173f</code></a> Update SkipSet docs to use deref</li>
<li><a href=""><code>cbd2557</code></a> Add docs for SkipSet and SkipList</li>
<li><a href=""><code>b3d4898</code></a> Merge <a href="">#657</a></li>
<li>Additional commits viewable in <a href="">compare view</a></li>
<br />

[![Dependabot compatibility score](](

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)


<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


Co-authored-by: dependabot[bot] <49699333+dependabot[bot]>

Git stats


Failed to load latest commit information.
Latest commit message
Commit time

RustyHermit: libhermit-rs

Documentation License Slack Status

libhermit-rs is the kernel of the RustyHermit unikernel project.

Building the kernel

Usually the kernel will be linked as static library to your applications.

  • Rust applications: Instructions can be found in the rusty-hermit repository.
  • For C/C++ applications: Instructions can be found in the hermit-playground repository.

Standalone static library build

If this does not fit your needs and you want to build the kernel as static library to link afterwards, you need the following:

The Rust nightly toolchain (official webpage), the source code of the Rust runtime, and llvm-tools:

rustup toolchain install nightly
rustup component add rust-src llvm-tools-preview

You can then build libhermit-rs with the following command

cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-hermit-kernel

The resulting library then can be found in target/x86_64-unknown-hermit-kernel/debug/libhermit.a

Control the kernel messages verbosity

libhermit-rs uses the lightweight logging crate log to print kernel messages. The environment variable HERMIT_LOG_LEVEL_FILTER controls the verbosity. You can change it by setting it at compile time to a string matching the name of a LevelFilter. If the variable is not set, or the name doesn't match, then LevelFilter::Info is used by default.

$ HERMIT_LOG_LEVEL_FILTER=Debug cargo build -Z build-std=core,alloc,panic_abort --target x86_64-unknown-hermit-kernel


libhermit-rs is derived from following tutorials and software distributions:

  1. Philipp Oppermann's excellent series of blog posts.
  2. Erik Kidd's toyos-rs, which is an extension of Philipp Opermann's kernel.
  3. The Rust-based teaching operating system eduOS-rs.

HermitCore's Emoji is provided for free by EmojiOne.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

libhermit-rs is being developed on GitHub. Create your own fork, send us a pull request, and chat with us on Slack