Skip to content

Commit d6f5cd2

Browse files
committed
Prep for releasing v1.0.0
1 parent 594fef9 commit d6f5cd2

File tree

7 files changed

+123
-0
lines changed

7 files changed

+123
-0
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
## The Problem
2+
3+
[ What are you trying to solve? Why are you trying to solve it? ]
4+
5+
## The Solution
6+
7+
[ How are you fixing the problem? High-level explanation. ]
8+
9+
### Changes
10+
11+
[ A more detailed explanation of the solution to guide reviewers. Point out tricky or magic areas. ]
12+
13+
### Planned version bump
14+
15+
- Which: [ `MAJOR`, `MINOR`, `PATCH` ]
16+
- Why: [ non-breaking bug fix, doc change, test coverage, formatting, debugging, profiling, new functionality, breaking change, etc ]
17+
18+
### Todos
19+
20+
- [ ] Other things that need
21+
- [ ] to be done
22+
- [ ] before this goes
23+
- [ ] to `main`?
24+
25+
### Links
26+
27+
* [ Documentation or other resources ]
28+
* [ Other PRs, branches, or issues ]
29+
30+
## Technical Debt
31+
32+
[ Record any debt being added, removed or just pragmatically avoided? ]
33+
34+
[ Did you add `// @todo` markers specific to avoided debt? ]
35+
36+
## Notes
37+
38+
[ Is this a WIP PR? What specific feedback are you looking for? ]
39+
40+
[ @mentions for anyone who should be alerted to this PR ]

.github/workflows/tests.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout code
12+
uses: actions/checkout@v4
13+
14+
- name: Install Rust
15+
uses: actions-rs/toolchain@v1
16+
with:
17+
toolchain: stable
18+
profile: minimal
19+
components: clippy, rustfmt
20+
21+
- name: Clippy
22+
run: cargo clippy
23+
24+
- name: Format
25+
run: cargo fmt -- --check
26+
27+
- name: Test
28+
run: cargo test

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
11
/target
2+
.git
3+
.DS_Store
4+
*.swp
5+
.idea/
6+
.vscode/

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# CHANGELOG
2+
3+
# [1.0.0](https://github.com/awesomized/crc32fast-lib-rust/releases/1.0.0) - 2024-12-27
4+
- Initial release.

Cargo.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
name = "crc32fast-lib"
33
version = "1.0.0"
44
edition = "2021"
5+
authors = ["Don MacAskill"]
6+
keywords = ["crc", "crc32", "simd", "checksum", "nvme"]
7+
categories = ["algorithms", "encoding", "hardware-support"]
8+
license = "MIT"
9+
repository = "https://github.com/awesomized/crc32fast-lib-rust"
10+
description = "Fast, SIMD-accelerated CRC-32/ISO-HDLC (aka 'crc32') checksum computation in Rust exposed as a C-compatible shared library"
11+
readme = "README.md"
512

613
[dependencies]
714
crc32fast = "1"

LICENSE

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Copyright 2024 Don MacAskill <[email protected]>
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of
4+
this software and associated documentation files (the "Software"), to deal in
5+
the Software without restriction, including without limitation the rights to
6+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7+
the Software, and to permit persons to whom the Software is furnished to do so,
8+
subject to the following conditions:
9+
10+
The above copyright notice and this permission notice shall be included in all
11+
copies or substantial portions of the Software.
12+
13+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# crc32fast-lib
2+
3+
Fast, SIMD-accelerated [CRC-32/ISO-HDLC](https://reveng.sourceforge.io/crc-catalogue/all.htm#crc.cat.crc-32-iso-hdlc) (aka `crc32`) checksum computation in Rust exposed as a C-compatible shared library.
4+
5+
Results in a dramatic performance improvement. For example, when [using it via FFI in PHP](https://github.com/awesomized/crc-fast-php), it's >10X faster than PHP's native [crc32](https://www.php.net/crc32) implementation.
6+
7+
## Changes
8+
9+
See the [change log](CHANGELOG.md).
10+
11+
## Usage
12+
13+
`cargo build` will produce a shared library target (`.so` on Linx, `.dll` on Windows, `.dylib` on macOS, etc) and a C header file.
14+
15+
Use the header file and library as you would normally when using a shared library in your language of choice.
16+
17+
## References
18+
19+
- [crc32fast](https://github.com/srijs/rust-crc32fast) - The underlying Rust library which implemented this SIMD-accelerated approach.
20+
- [crc-fast-php](https://github.com/awesomized/crc-fast-php) - An implementation of this library in PHP using FFI.
21+
- [crc64fast-nvme](https://github.com/awesomized/crc64fast-nvme) - A similar project which computes [CRC-64/NVME](https://reveng.sourceforge.io/crc-catalogue/all.htm#crc.cat.crc-64-nvme) checksums at >20GiB/s.

0 commit comments

Comments
 (0)