Commit Graph

57 Commits

Author SHA1 Message Date
Ilka Schulz e7b2296145 add cargo-deny to nix dev-shell (fullEnv) 2026-06-07 09:23:55 +02:00
Ilka Schulz f16b2e1b03 run formatters 2026-06-05 07:35:21 +02:00
Ilka Schulz 5c60002cd9 remove old Node.js Nix packages and directly query them from pkgs instead 2026-06-05 07:16:48 +02:00
Ilka Schulz 8c334d61ff upgrade from nix-os 24.05 to 26.05 2026-06-05 06:39:53 +02:00
wucke13 49be83847b feat: add preliminary miri support
- Adds a devShell with Miri
- Marks some of the tests which Miri cannot execute as ignored for Miri

Signed-off-by: wucke13 <wucke13+github@gmail.com>
2025-09-05 16:22:02 +02:00
Karolin Varner ba1c6a177e fix: Spurious input in nix flake 2025-09-01 10:58:27 +02:00
Karolin Varner 6577d1731c fix: In integration test in main flake: Move rosenpassOld into flake imports 2025-09-01 10:58:27 +02:00
David Niehues 3e4e67b1e3 chore(tests): Add integration tests to checks in main flake.nix 2025-09-01 10:58:27 +02:00
Jan Winkelmann (keks) 77b50b70b1 address feedback 2025-06-23 16:39:22 +02:00
Jan Winkelmann (keks) 196d459a2b fix flake.nix: no more fenix 2025-06-23 16:39:22 +02:00
Jan Winkelmann (keks) 5097d9fce1 Add benchmarking for cryptographic primitives and protocol performance
This commit introduces two kinds of benchmarks:

1. Cryptographic Primitives. Measures the performance of all available
   implementations of cryptographic algorithms using traditional
   benchmarking. Uses criterion.
2. Protocol Runs. Measures the time each step in the protocol takes.
   Measured using a tracing-based approach.

The benchmarks are run on CI and an interactive visual overview is
written to the gh-pages branch. If a benchmark takes more than twice the
time than the reference commit (for PR: the main branch), the action
fails.
2025-06-23 16:39:22 +02:00
wucke13 39f99fbfea feat: add cargo vet
It was missing from the fullEnv nativeBuildInputs. Also, reorder the
cargo subcommands in that list alphabetically.

Signed-off-by: wucke13 <wucke13+github@gmail.com>
2025-05-09 18:22:10 +02:00
wucke13 3ea1a824cc feat: add rosenpass MSRV check
This check requires a specific toolchain version, and to get that, we
introduce oxalica's rust-overlay.

Signed-off-by: wucke13 <wucke13+github@gmail.com>
2025-05-09 18:22:10 +02:00
wucke13 740489544d fix: remove fenix flake input
By now it is possible to use cargo-llvm-cov with the nixpkgs built-in
llvm tools, thus no need for a nightly rust with the llvm-tools-preview.
Therefore, fenix as a dependency is removed.

Signed-off-by: wucke13 <wucke13+github@gmail.com>
2025-05-09 18:22:10 +02:00
wucke13 22b980a61f chore: format everything
This implicates a change from nixpkgs-fmt to nixfmt. Nixfmt will become
the new standard on nix formatting, sanctioned by the nixpkgs. To verify
that these changes are purely in whitespace, but not semantic:

git diff --ignore-all-space -w HEAD^!

That will only show newline changes, make the diffing somewhat easier.

Signed-off-by: wucke13 <wucke13+github@gmail.com>
2025-05-09 18:22:07 +02:00
wucke13 a45812b2cd feat: add treefmt.nix setup
Add a treefmt setup for a single-entry point format-everything system.
To use it, simply run `nix fmt`. This will in term run nixfmt, prettier
and rustfmt.

Signed-off-by: wucke13 <wucke13+github@gmail.com>
2025-05-09 18:21:17 +02:00
Karolin Varner a83589d76a feat: Cargo-msrv in full development package 2025-04-13 13:44:36 +02:00
Jacek Galowicz f093406c34 Use upstream nix-vm-test after PR was merged 2025-02-09 21:39:24 +07:00
Jacek Galowicz eadf70ee38 Generate and test RPM package for Fedora 2025-02-09 21:39:24 +07:00
Jacek Galowicz 7ac0883970 Generate and test .deb package for Debian and Ubuntu 2025-02-09 21:39:24 +07:00
Karolin Varner 1471bb6a9f chore: cargo-audit in nix develop .#fullEnv 2025-02-04 19:36:56 +01:00
Jacek Galowicz 6048ebd3d9 rp systemd unit file: introduce and test 2024-12-09 15:35:34 +01:00
Jacek Galowicz f9dce3fc9a rosenpass systemd unit file: introduce and test 2024-12-09 15:35:34 +01:00
Karolin Varner d8839ba341 feat(coverage): Reduce coverage false-negatives using grcov
Previously, we would report some tag style macros such as
`#[repr(packed)]` as being uncovered.

We are now also including doctests in our coverage reports.

Finally, a new script `coverage_report.sh` makes coverage checking
easier.
2024-12-07 15:26:47 +01:00
Karolin Varner a30805f8a0 feat(nix): Dev shell environment with full rust installation
$ nix develop .#fullEnv

This environment contains extra utilities such as the rust language
server.
2024-12-07 12:36:40 +01:00
wucke13 d9f8fa0092 refactor(flake.nix): externalize pkgs, add overlay
This splits the complexity of the `flake.nix` into multiple files. At
cross-compiled and static builds at the benefit of simpler nix
expressions and generally better cross compilation compatibility.
the same time, naersk is removed; causing much slower builds for cross-
compiled packages.

This partially addresses the points mentioned in #412.
2024-10-08 17:30:08 +02:00
Karolin Varner 40c5bbd167 chore: Ensure that rustAnalyzer is installed in dev environment 2024-08-03 14:06:19 +02:00
Prabhpreet Dua 70c5ec2c29 chore: Remove libsodium references in nix flake, ci (#334) 2024-06-06 17:10:51 +05:30
Gergő Móricz cc7e8dc510 feat(rp-rust): implement rp tool in Rust (#235) 2024-04-19 20:44:55 +02:00
wucke13 0e8945db78 fix: .ci/gen-workflow-files.nu script
- Fix std log import (remove the asterisk)
- Add sort to dependencies field to make script output deterministic
- Remove whitespace error at EOF
- Add nushell to the default devShell, so that the script can be ran
  from the devShell
2024-04-06 17:45:34 +02:00
wucke13 d1d218ac0f chore: add dedicated nixpkgs input to flake
This ensures that `nix flake update` doesn't create surprises on
different systems.
2024-04-06 17:45:34 +02:00
Paul Spooren 13df700ef5 flake: drop overlay due to upstream fix
Upstream fix #216904 got fixed to remove the extra overlay.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2024-03-08 20:22:41 +01:00
Aaron Kaiser 8ea253f86b refactor: use memoffset crate instead of unstable offset_of feature 2024-02-21 14:04:39 +01:00
Aaron Kaiser a996b08279 refactor: replace lenses library with the zerocopy crate 2024-02-21 14:04:39 +01:00
wucke13 9819148b6f fix: remove OSFONTDIR var from whitepaper build
Fixes #65. I checked with `pdffonts` that the whitepaper still has all fonts embedded.
2023-12-03 13:27:47 +01:00
Karolin Varner 40861cc2ea fix: Nix flake failing due to rosenpass-to
README.md was missing; added it to the list of source files
2023-11-29 11:36:28 +01:00
Karolin Varner 46156fcb29 fix: Setup cargo fmt to check the entire workspace 2023-11-26 10:38:24 +01:00
wucke13 df60b0bfc3 refine source filter
In particular, replace the error prone sourceByRegex filter for the rosenpass derivation with a simple file suffix filter.
2023-11-12 13:16:34 +01:00
wucke13 6274c6fcdd add workspace Cargo.toml 2023-11-12 13:16:34 +01:00
wucke13 cd00f023fb move the current rosenpass codebase into a subdir
This is preparation to make the rosenpass repo a workspace, which can contain multiple crates.
2023-11-12 13:16:34 +01:00
Emil Engler 6e15c38254 flake: Remove redundant stack increase
This commit removes the setting of `RUST_MIN_STACK` by the Nix
development shell, because the tests now set the stack size on their
own.

See #128
2023-10-06 10:43:41 +02:00
wucke13 d21e3af1bb fix broken devShell
The use of a fakecmake in the main step of the Rosenpass build removed real CMake from the devShell, essentially breaking cargo build from within it. This commit fixes that, by explicitly placing the real CMake in the devShell's nativeBuildInputs.
2023-06-30 21:03:32 +02:00
wucke13 4314a0915a fix tex build after update 2023-06-14 18:56:12 +02:00
wucke13 11d60bcced add GH-Actions based CI with cachix 2023-06-10 03:44:02 +02:00
Karolin Varner 78e32a6f14 fix: Show cargo fmt errors 2023-05-23 22:26:56 +02:00
Emil Engler 13cc7e05ed invoke man(1) when requesting help
This commit invokes `man(1)` when requesting help and emits the built-in
manual, if the manual page is not found on the system.
2023-04-25 14:54:30 +02:00
wucke13 378fddb645 fix or exclude failing CI actions
Due to https://github.com/open-quantum-safe/liboqs-rust/issues/202 it is not
yet possible to build the static Rosenpass version for `i686`. The CI actions
which fail for this reason have been excluded for now. Further on, some
the workflow names have been shortened for better overview.
2023-04-23 17:19:31 +02:00
wucke13 695ef6a769 replace pkgs.rustPlatform with naersk + fenix
Now that fenix + naersk are used, we don't have the problem of hour-long
builds of a `pkgsStatic.rustc` running in qemu-aarch64. Thus, we can now
finally add these without a big penalty in CI runtime. In addition to
that, the i686 target is added as well.
2023-04-23 00:03:31 +02:00
wucke13 c79dffa627 fix #41
Adds a check for empty messages as well as unit test verifying that
empty messages are handled as desired.
2023-04-09 17:54:51 +02:00
wucke13 df02f616bf remove code format snowflakes
this also enables the `cargo fmt` check in the flake
2023-04-05 16:35:31 +02:00