gxhash 3.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gxhash might be problematic. Click here for more details.
- gxhash-3.4.1/.cargo/config.toml +3 -0
- gxhash-3.4.1/.gitattributes +1 -0
- gxhash-3.4.1/.github/workflows/bench.yml +89 -0
- gxhash-3.4.1/.github/workflows/build_test.yml +62 -0
- gxhash-3.4.1/.github/workflows/cross_compile.yml +66 -0
- gxhash-3.4.1/.github/workflows/rust_version.yml +31 -0
- gxhash-3.4.1/.gitignore +27 -0
- gxhash-3.4.1/CITATION.cff +10 -0
- gxhash-3.4.1/Cargo.lock +906 -0
- gxhash-3.4.1/Cargo.toml +73 -0
- gxhash-3.4.1/LICENSE +21 -0
- gxhash-3.4.1/PKG-INFO +172 -0
- gxhash-3.4.1/README.md +156 -0
- gxhash-3.4.1/benches/hashset.rs +83 -0
- gxhash-3.4.1/benches/ilp.rs +88 -0
- gxhash-3.4.1/benches/quality/main.rs +498 -0
- gxhash-3.4.1/benches/throughput/aarch64.svg +194 -0
- gxhash-3.4.1/benches/throughput/main.rs +186 -0
- gxhash-3.4.1/benches/throughput/result_processor.rs +184 -0
- gxhash-3.4.1/benches/throughput/x86_64-avx2.svg +174 -0
- gxhash-3.4.1/benches/throughput/x86_64-hybrid.svg +152 -0
- gxhash-3.4.1/benches/throughput/x86_64.svg +152 -0
- gxhash-3.4.1/benches/throughput_criterion.rs +94 -0
- gxhash-3.4.1/build.rs +3 -0
- gxhash-3.4.1/examples/hello_world.rs +13 -0
- gxhash-3.4.1/pyproject.toml +15 -0
- gxhash-3.4.1/rustfmt.toml +2 -0
- gxhash-3.4.1/src/gxhash/mod.rs +226 -0
- gxhash-3.4.1/src/gxhash/platform/arm.rs +162 -0
- gxhash-3.4.1/src/gxhash/platform/mod.rs +48 -0
- gxhash-3.4.1/src/gxhash/platform/x86.rs +198 -0
- gxhash-3.4.1/src/hasher.rs +324 -0
- gxhash-3.4.1/src/lib.rs +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*.tex linguist-detectable=false
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
name: Benchmark
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
env:
|
|
7
|
+
CARGO_TERM_COLOR: always
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
benchmark-x86:
|
|
11
|
+
name: Benchmark X86
|
|
12
|
+
runs-on: buildjet-2vcpu-ubuntu-2204
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Update rust
|
|
18
|
+
run: rustup update
|
|
19
|
+
|
|
20
|
+
- name: Benchmark
|
|
21
|
+
run: cargo bench --bench throughput --features bench-plot
|
|
22
|
+
|
|
23
|
+
- uses: actions/upload-artifact@v3
|
|
24
|
+
with:
|
|
25
|
+
name: benches
|
|
26
|
+
path: benches/throughput/x86_64.svg
|
|
27
|
+
|
|
28
|
+
benchmark-x86-avx2:
|
|
29
|
+
name: Benchmark X86 AVX2
|
|
30
|
+
runs-on: buildjet-2vcpu-ubuntu-2204
|
|
31
|
+
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v4
|
|
34
|
+
|
|
35
|
+
- name: Switch to nightly rust
|
|
36
|
+
run: rustup default nightly
|
|
37
|
+
|
|
38
|
+
- name: Benchmark
|
|
39
|
+
run: cargo bench --bench throughput --features bench-plot,hybrid
|
|
40
|
+
|
|
41
|
+
- uses: actions/upload-artifact@v3
|
|
42
|
+
with:
|
|
43
|
+
name: benches
|
|
44
|
+
path: benches/throughput/x86_64-hybrid.svg
|
|
45
|
+
|
|
46
|
+
benchmark-arm:
|
|
47
|
+
name: Benchmark ARM
|
|
48
|
+
runs-on: buildjet-2vcpu-ubuntu-2204-arm
|
|
49
|
+
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@v4
|
|
52
|
+
|
|
53
|
+
- name: Update rust
|
|
54
|
+
run: rustup update
|
|
55
|
+
|
|
56
|
+
- name: Benchmark
|
|
57
|
+
run: cargo bench --bench throughput --features bench-plot
|
|
58
|
+
|
|
59
|
+
- uses: actions/upload-artifact@v3
|
|
60
|
+
with:
|
|
61
|
+
name: benches
|
|
62
|
+
path: benches/throughput/aarch64.svg
|
|
63
|
+
|
|
64
|
+
commit:
|
|
65
|
+
name: Commit & Push
|
|
66
|
+
runs-on: buildjet-2vcpu-ubuntu-2204
|
|
67
|
+
needs: [benchmark-x86, benchmark-x86-avx2, benchmark-arm]
|
|
68
|
+
|
|
69
|
+
permissions:
|
|
70
|
+
contents: write
|
|
71
|
+
|
|
72
|
+
steps:
|
|
73
|
+
- uses: actions/checkout@v4
|
|
74
|
+
|
|
75
|
+
- name: Download Benchmark Results
|
|
76
|
+
uses: actions/download-artifact@v3
|
|
77
|
+
with:
|
|
78
|
+
name: benches
|
|
79
|
+
path: benches/throughput
|
|
80
|
+
|
|
81
|
+
- name: Commit & Push Benchmark Results
|
|
82
|
+
uses: stefanzweifel/git-auto-commit-action@v5
|
|
83
|
+
with:
|
|
84
|
+
file_pattern: '*.svg'
|
|
85
|
+
commit_message: Update Benchmark Results
|
|
86
|
+
commit_user_name: Benchmark Bot
|
|
87
|
+
commit_user_email: benchmark-bot@noreply.com
|
|
88
|
+
commit_author: Benchmark Bot <benchmark-bot@noreply.com>
|
|
89
|
+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: Build & Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "main" ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ "main" ]
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
CARGO_TERM_COLOR: always
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build_test_x86:
|
|
14
|
+
name: Build & Test X86
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v3
|
|
19
|
+
|
|
20
|
+
- name: Rust version
|
|
21
|
+
run: cargo rustc -- --version
|
|
22
|
+
|
|
23
|
+
- name: Build
|
|
24
|
+
run: cargo build --release
|
|
25
|
+
|
|
26
|
+
- name: Test
|
|
27
|
+
run: cargo test --release
|
|
28
|
+
|
|
29
|
+
build_test_x86_avx2:
|
|
30
|
+
name: Build & Test X86 AVX2
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v3
|
|
35
|
+
|
|
36
|
+
- name: Switch to nightly rust
|
|
37
|
+
run: rustup default nightly
|
|
38
|
+
|
|
39
|
+
- name: Rust version
|
|
40
|
+
run: cargo rustc -- --version
|
|
41
|
+
|
|
42
|
+
- name: Build
|
|
43
|
+
run: cargo build --release --features hybrid
|
|
44
|
+
|
|
45
|
+
- name: Test
|
|
46
|
+
run: cargo test --release --features hybrid
|
|
47
|
+
|
|
48
|
+
build_test_arm:
|
|
49
|
+
name: Build & Test ARM
|
|
50
|
+
runs-on: macos-latest
|
|
51
|
+
|
|
52
|
+
steps:
|
|
53
|
+
- uses: actions/checkout@v3
|
|
54
|
+
|
|
55
|
+
- name: Rust version
|
|
56
|
+
run: cargo rustc -- --version
|
|
57
|
+
|
|
58
|
+
- name: Build
|
|
59
|
+
run: cargo build --release
|
|
60
|
+
|
|
61
|
+
- name: Test
|
|
62
|
+
run: cargo test --release
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: Cross Compile
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Trigger when merged on main
|
|
5
|
+
push:
|
|
6
|
+
branches: [ "main" ]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [ "main" ]
|
|
9
|
+
# Manual trigger
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
CARGO_TERM_COLOR: always
|
|
14
|
+
RUSTFLAGS: "-C target-feature=+aes,+vaes,+avx2"
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
|
|
18
|
+
build_x86:
|
|
19
|
+
name: Build
|
|
20
|
+
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
include:
|
|
25
|
+
- from: ubuntu-latest
|
|
26
|
+
target: "aarch64-apple-darwin"
|
|
27
|
+
allow_failure_hybrid: true
|
|
28
|
+
- from: ubuntu-latest
|
|
29
|
+
target: "aarch64-unknown-linux-gnu"
|
|
30
|
+
allow_failure_hybrid: true
|
|
31
|
+
- from: ubuntu-latest
|
|
32
|
+
target: "aarch64-unknown-linux-musl"
|
|
33
|
+
allow_failure_hybrid: true
|
|
34
|
+
- from: ubuntu-latest
|
|
35
|
+
target: "i686-unknown-linux-gnu"
|
|
36
|
+
allow_failure_hybrid: true
|
|
37
|
+
- from: ubuntu-latest
|
|
38
|
+
target: "x86_64-pc-windows-msvc"
|
|
39
|
+
allow_failure_hybrid: true # Supposed to work as hybrid but not tested yet
|
|
40
|
+
- from: ubuntu-latest
|
|
41
|
+
target: "x86_64-unknown-linux-gnu"
|
|
42
|
+
allow_failure_hybrid: false
|
|
43
|
+
- from: macos-latest
|
|
44
|
+
target: "aarch64-apple-darwin"
|
|
45
|
+
allow_failure_hybrid: true
|
|
46
|
+
- from: macos-latest
|
|
47
|
+
target: "x86_64-unknown-linux-gnu"
|
|
48
|
+
allow_failure_hybrid: true # Supposed to work as hybrid but not tested yet
|
|
49
|
+
|
|
50
|
+
runs-on: ${{ matrix.from }}
|
|
51
|
+
|
|
52
|
+
steps:
|
|
53
|
+
- uses: actions/checkout@v3
|
|
54
|
+
|
|
55
|
+
- name: Install target
|
|
56
|
+
run: rustup target add ${{ matrix.target }}
|
|
57
|
+
|
|
58
|
+
- name: Build
|
|
59
|
+
run: cargo build --release --target ${{ matrix.target }}
|
|
60
|
+
|
|
61
|
+
- name: Switch to nightly rust
|
|
62
|
+
run: rustup default nightly
|
|
63
|
+
|
|
64
|
+
- name: Build Hybrid
|
|
65
|
+
continue-on-error: ${{ matrix.allow_failure_hybrid }}
|
|
66
|
+
run: cargo build --release --features hybrid --target ${{ matrix.target }}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Rust Version Compatibility
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Trigger when merged on main
|
|
5
|
+
push:
|
|
6
|
+
branches: [ "main" ]
|
|
7
|
+
# Manual trigger
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
env:
|
|
11
|
+
CARGO_TERM_COLOR: always
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
|
|
15
|
+
build_test_x86:
|
|
16
|
+
name: Build & Test X86
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
version: ["1.65", "1.72", "1.78"]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v3
|
|
26
|
+
|
|
27
|
+
- name: Install ${{ matrix.version }}
|
|
28
|
+
run: rustup toolchain install ${{ matrix.version }}
|
|
29
|
+
|
|
30
|
+
- name: Build
|
|
31
|
+
run: cargo +${{ matrix.version }} build --release
|
gxhash-3.4.1/.gitignore
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated by Cargo
|
|
2
|
+
# will have compiled files and executables
|
|
3
|
+
debug/
|
|
4
|
+
target/
|
|
5
|
+
|
|
6
|
+
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
|
|
7
|
+
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
|
|
8
|
+
Cargo.lock
|
|
9
|
+
|
|
10
|
+
# These are backup files generated by rustfmt
|
|
11
|
+
**/*.rs.bk
|
|
12
|
+
|
|
13
|
+
# MSVC Windows builds of rustc generate these, which store debugging information
|
|
14
|
+
*.pdb
|
|
15
|
+
article/*.log
|
|
16
|
+
article/*.out
|
|
17
|
+
article/*.fls
|
|
18
|
+
article/*.toc
|
|
19
|
+
article/*.fdb_latexmk
|
|
20
|
+
article/*.synctex.gz
|
|
21
|
+
article/*.aux
|
|
22
|
+
article/*.blg
|
|
23
|
+
article/*.bbl
|
|
24
|
+
|
|
25
|
+
.idea/**/*
|
|
26
|
+
|
|
27
|
+
.venv/
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use this software, please cite it as below."
|
|
3
|
+
authors:
|
|
4
|
+
- family-names: Giniaux
|
|
5
|
+
given-names: Olivier
|
|
6
|
+
orcid: https://orcid.org/1234-5678-9101-1121
|
|
7
|
+
title: "GxHash: A High-Throughput, Non-Cryptographic Hashing Algorithm Leveraging Modern CPU Capabilities"
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
doi: 10.5281/zenodo.8368254
|
|
10
|
+
date-released:
|