K4JNAJOFEJLHHWP6YSCC2U3CNK3ZPPX6EMBAVQG4VRPZWZRXMPCQC use std::env;use rocket::{Rocket, Build};use rocket::fairing::{self, AdHoc};async fn init_db(rocket: Rocket<Build>) -> fairing::Result {let database_url = match env::var("DATABASE_URL") {Ok(val) => val,Err(e) => {error!("Failed to read DATABASE_URL environment variable: {}", e);return Err(rocket)}};let pool = sqlx::PgPool::connect(&database_url).await.expect("Failed to connect to the database");Ok(rocket.manage(pool))}pub fn stage() -> AdHoc {AdHoc::on_ignite("SQL Stage - PostgreSQL", |rocket| async {rocket.attach(AdHoc::try_on_ignite("Postgres Database", init_db))})}
### NidobyteServer for hosting for your Pijul projects written in Rust.### Installing- Database is Postgresql, DATABASE_URL must be exposed as environment variable#### DevelopmentThis project uses nix to ensure dependencies are met and the development environmentsare reproducable. Please install Nix by [following the install instructions](https://nixos.org/download.html).#### Getting started with Pijul* `pijul init` to start a repository* `rm -rf .git` if tooling already created a Git repository* `mv .gitignore .ignore` to ignore local only files* Set the author of patches for this machine by writing TOML:```[author]name = "<alias or short name>"full_name = "<full name>"email = "<email address>"```For MacOs write it to: `~/.pijulconfig`
# Persistence layer: Postgresql[dependencies.sqlx]version = "0.5.5"default-features = falsefeatures = [ "runtime-tokio-rustls", "postgres", "migrate" ]
[[package]]name = "ahash"version = "0.7.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"dependencies = ["getrandom","once_cell","version_check",][[package]]name = "aho-corasick"version = "0.7.18"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"dependencies = ["memchr",][[package]]name = "arrayvec"version = "0.5.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]name = "bitvec"version = "0.19.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"dependencies = ["funty","radium","tap","wyz",][[package]]name = "block-buffer"version = "0.9.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"dependencies = ["generic-array",][[package]]name = "build_const"version = "0.2.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7"
name = "crc"version = "1.8.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"dependencies = ["build_const",][[package]]name = "crossbeam-channel"version = "0.5.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"dependencies = ["cfg-if","crossbeam-utils",][[package]]name = "crossbeam-queue"version = "0.3.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9b10ddc024425c88c2ad148c1b0fd53f4c6d38db9697c9f1588381212fa657c9"dependencies = ["cfg-if","crossbeam-utils",][[package]]name = "crossbeam-utils"version = "0.8.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"dependencies = ["cfg-if","lazy_static",][[package]]name = "crypto-mac"version = "0.10.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6"dependencies = ["generic-array","subtle",][[package]]
name = "digest"version = "0.9.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"dependencies = ["generic-array",][[package]]name = "dirs"version = "3.0.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"dependencies = ["dirs-sys",][[package]]name = "dirs-sys"version = "0.3.6"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"dependencies = ["libc","redox_users","winapi",][[package]]
name = "form_urlencoded"version = "1.0.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"dependencies = ["matches","percent-encoding",][[package]]name = "funty"version = "1.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"[[package]]
dependencies = ["ahash",][[package]]name = "hashlink"version = "0.7.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf"dependencies = ["hashbrown",][[package]]name = "heck"version = "0.3.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"dependencies = ["unicode-segmentation",]
name = "hex"version = "0.4.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"[[package]]name = "hmac"version = "0.10.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"dependencies = ["crypto-mac","digest",][[package]]
][[package]]name = "maplit"version = "1.0.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"[[package]]name = "matches"version = "0.1.8"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"[[package]]name = "md-5"version = "0.9.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"dependencies = ["block-buffer","digest","opaque-debug",
name = "regex"version = "1.5.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"dependencies = ["aho-corasick","memchr","regex-syntax",][[package]]name = "regex-syntax"version = "0.6.25"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"[[package]]
[[package]]name = "sqlformat"version = "0.1.6"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6d86e3c77ff882a828346ba401a7ef4b8e440df804491c6064fe8295765de71c"dependencies = ["lazy_static","maplit","nom","regex","unicode_categories",][[package]]name = "sqlx"version = "0.5.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ba82f79b31f30acebf19905bcd8b978f46891b9d0723f578447361a8910b6584"dependencies = ["sqlx-core","sqlx-macros",][[package]]name = "sqlx-core"version = "0.5.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7f23af36748ec8ea8d49ef8499839907be41b0b1178a4e82b8cb45d29f531dc9"dependencies = ["ahash","atoi","base64","bitflags","byteorder","bytes","crc","crossbeam-channel","crossbeam-queue","crossbeam-utils","dirs","either","futures-channel","futures-core","futures-util","hashlink","hex","hmac","itoa","libc","log","md-5","memchr","once_cell","parking_lot","percent-encoding","rand","rustls","serde","serde_json","sha-1","sha2","smallvec","sqlformat","sqlx-rt","stringprep","thiserror","tokio-stream","url","webpki","webpki-roots","whoami",][[package]]name = "sqlx-macros"version = "0.5.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "47e4a2349d1ffd60a03ca0de3f116ba55d7f406e55a0d84c64a5590866d94c06"dependencies = ["dotenv","either","futures","heck","once_cell","proc-macro2","quote","sha2","sqlx-core","sqlx-rt","syn","url",][[package]]name = "sqlx-rt"version = "0.5.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8199b421ecf3493ee9ef3e7bc90c904844cfb2ea7ea2f57347a93f52bfd3e057"dependencies = ["once_cell","tokio","tokio-rustls",]
[[package]]name = "stringprep"version = "0.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1"dependencies = ["unicode-bidi","unicode-normalization",][[package]]name = "subtle"version = "2.4.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]name = "unicode-bidi"version = "0.3.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0"dependencies = ["matches",][[package]]name = "unicode-normalization"version = "0.1.19"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"dependencies = ["tinyvec",]
[[package]]name = "unicode_categories"version = "0.1.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"[[package]]name = "untrusted"version = "0.7.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"[[package]]name = "url"version = "2.2.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"dependencies = ["form_urlencoded","idna","matches","percent-encoding",]
name = "web-sys"version = "0.3.51"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582"dependencies = ["js-sys","wasm-bindgen",][[package]]name = "webpki"version = "0.21.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"dependencies = ["ring","untrusted",][[package]]name = "webpki-roots"version = "0.21.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"dependencies = ["webpki",][[package]]name = "whoami"version = "1.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4abacf325c958dfeaf1046931d37f2a901b6dfe0968ee965a29e94c6766b2af6"dependencies = ["wasm-bindgen","web-sys",][[package]]