rifling

Crates.iorifling
lib.rsrifling
version0.4.0
sourcesrc
created_at2019-03-31 04:58:51.586121
updated_at2019-04-24 23:57:34.382216
descriptionA library for creating Github/Gitlab webhook listener
homepagehttps://github.com/RedL0tus/rifling
repositoryhttps://github.com/RedL0tus/rifling
max_upload_size
id124910
size33,139
(liushuyu)

documentation

README

Rifling

license crates.io docs.rs Build Status

Rifling is a library to create Github/GitLab Webhook listener, influenced by afterparty.

If you want a commandline tool rather than a library, please consult trigger.

Features

  • Supports both GitHub and GitLab.
  • Supports both application/json mode and (optionally) application/x-www-form-urlencoded mode.
  • (Potentially) support for different web frameworks.
  • Optional payload parsing support. Using serde_json's untyped parsing functionality.
  • Optional payload authentication support with ring or libraries from RustCrypto team.
  • Optional logging.

Optional features

  • Web frameworks:
  • Payload authentication (does not affect usage):
    • crypto-use-ring (default): Use ring as cryptography library. This MAY be faster but has some C code.
    • crypto-use-rustcrypto: Use libraries from RustCrypto team (hmac and sha-1). These libraries are pure Rust implementations of these algorithms, which can be linked with musl.
  • Payload content type:
    • content-type-urlencoded (enabled by default): Support for application/x-www-form-urlencoded typed content.
  • Payload parsing:
    • parse (default): Parse the payload. Parsed payload will be present in Delivery.payload as Option<Value>.
  • Logging:
    • logging (default): Use the official log crate to log.
    • logging-print: Use println macro to print log. Will be ignored when logging is enabled.

Notes

  • Debug logs are useful to find problems.
  • Events received from GitLab will be patched by lower casing and replacing " "(whitespace) with "_"(underscore).
    • e.g. Push Hook will be push_hook while registering hooks.

License

MIT License. See LICENSE.

Commit count: 49

cargo fmt