#laws #preservation

bin+lib stelae

A collection of tools in Rust and Python for preserving, authenticating, and accessing laws in perpetuity

5 releases

0.3.2 Nov 1, 2024
0.3.1 Sep 25, 2024
0.3.0 Sep 19, 2024
0.2.1 Jul 10, 2023
0.2.0 Jul 4, 2023

#265 in HTTP server

Download history 146/week @ 2024-09-16 158/week @ 2024-09-23 41/week @ 2024-09-30 9/week @ 2024-10-07 105/week @ 2024-10-28 8/week @ 2024-11-04 3/week @ 2024-11-18

116 downloads per month

AGPL-3.0

200KB
4K SLoC

Stelae

Stelae is a system for distributing, preserving, and authenticating laws.

Contributing

Setting up environment

  1. Install dependencies:
  • Windows:
  • Linux:
    • sudo apt-get install build-essential pkg-config libssl-dev
  1. Install Rust
  2. Install Just (Our build tool)
  3. Windows: install Git Bash, included in Git for Windows.
  4. Windows (Optional): install NuShell (A fast, cross-platform shell used by Just)
  5. We recommend using VSCode (default settings provided in repo), but you can use any editor you like.

Development

  • Lints must pass before merging into master
  • All code must have tests. Tests should conform to our testing guidelines.
  • Run just from within the repository to list all available just commands. Currently:
    • bench: Run all benchmarks
    • ci: Continuous integration - lint, test, benchmark
    • clippy *FLAGS: Run clippy maximum strictness. Passes through any flags to clippy.
    • default: List all available commands
    • format: Format code
    • lint: Format code and run strict clippy
    • test: Run all tests
  • On windows, especially, you may wish to run just through the nu shell, which can be done by calling all commands with the --shell command, e.g. just --shell nu lint.

Logging

The ENV variable RUST_LOG can be set with one of trace, debug, info, warn, error. Filters can be set based on the target components seen in the logs lines, for example: to use trace but turn down the noise from the Actix dispatcher: RUST_LOG="trace,actix_http::h1::dispatcher=warn"

See tracing-subscriber docs and env_logger syntax.

Q&A

  • Why do we suggest NuShell?
    • NuShell is almost as fast on Windows as cmd, but is compattible with bash. If you do not use NuShell on windows, you will need to make sure Git Bash is installed. If you have performance issues, consider switching to Nu.

Dependencies

~80MB
~1.5M SLoC