60 stable releases

Uses new Rust 2024

3.2.2 May 10, 2025
3.2.1 Aug 25, 2024
3.2.0 Jul 26, 2024
3.1.8 Sep 12, 2023
0.17.0 Jun 30, 2020

#339 in Parser implementations

Download history 1546/week @ 2025-02-01 540/week @ 2025-02-08 549/week @ 2025-02-15 400/week @ 2025-02-22 221/week @ 2025-03-01 271/week @ 2025-03-08 449/week @ 2025-03-15 288/week @ 2025-03-22 182/week @ 2025-03-29 125/week @ 2025-04-05 112/week @ 2025-04-12 99/week @ 2025-04-19 490/week @ 2025-04-26 391/week @ 2025-05-03 1733/week @ 2025-05-10 119/week @ 2025-05-17

2,738 downloads per month
Used in 10 crates (6 directly)

CC0 license

120KB
2K SLoC

A library to parse commit messages in git hooks

Make it a bit easier to write lints and for git hooks

Example

use indoc::indoc;
use mit_commit::{Bodies, CommitMessage, Subject};

let message = CommitMessage::from(indoc!(
    "
    Update bashrc to include kubernetes completions

    This should make it easier to deploy things for the developers.
    Benchmarked with Hyperfine, no noticable performance decrease.

    ; Bitte geben Sie eine Commit-Beschreibung f\u{00FC}r Ihre \u{00E4}nderungen ein. Zeilen,
    ; die mit ';' beginnen, werden ignoriert, und eine leere Beschreibung
    ; bricht den Commit ab.
    ;
    ; Datum:            Sat Jun 27 21:40:14 2020 +0200
    ;
    ; Auf Branch master
    ;
    ; Initialer Commit
    ;
    ; Zum Commit vorgemerkte \u{00E4}nderungen:
    ;    neue Datei:     .bashrc
    ;"
));
assert_eq!(
    message.get_subject(),
    Subject::from("Update bashrc to include kubernetes completions")
)

mit-commit

A library to parse commit messages in git hooks

use indoc::indoc;
use mit_commit::{Bodies, CommitMessage, Subject};

let message = CommitMessage::from(indoc!(
    "
    Update bashrc to include kubernetes completions

    This should make it easier to deploy things for the developers.
    Benchmarked with Hyperfine, no noticable performance decrease.

    ; Bitte geben Sie eine Commit-Beschreibung f\u{00FC}r Ihre \u{00E4}nderungen ein. Zeilen,
    ; die mit ';' beginnen, werden ignoriert, und eine leere Beschreibung
    ; bricht den Commit ab.
    ;
    ; Datum:            Sat Jun 27 21:40:14 2020 +0200
    ;
    ; Auf Branch master
    ;
    ; Initialer Commit
    ;
    ; Zum Commit vorgemerkte \u{00E4}nderungen:
    ;    neue Datei:     .bashrc
    ;"
));
assert_eq!(
    message.get_subject(),
    Subject::from("Update bashrc to include kubernetes completions")
)

Read more at Docs.rs

Dependencies

~3.5–5.5MB
~94K SLoC