Crate rsbadges

source ·
Expand description

Create code badges from the comfort and safety of Rust


不 知 道


link here and a link here


version 1.2.3




RSBadges is a Rust-friendly badge generator. The interface strives to be minimal while still providing a feature-rich API. Both the label (the left side) and the message (the right side) of the badge can be customized fully, with the ability to

  • Set text
  • Set color using any valid CSS color code
  • Embed a link into each side or a link for the whole badge
  • Add a logo (in SVG format) from a local source or a URL
  • Embed that logo’s data into the badge directly
  • Set the style of badge, as described in

RSBadges can be used as an API or a command line interface (CLI). See the Badge and Style docs for more details on arguments and capabilities.


First, instantiate a Badge struct to set all of the generic options for a badge SVG. This fully-populated Badge is then wrapped in a Style enum, which indicates which style of badge to eventually generate.

use rsbadges::{Badge, Style};
let badge = Badge {
    label_text: String::from("Custom_label"),
    msg_text: String::from("Custom_msg"),
    label_color: String::from("red"),
// Create a plastic badge using the data created above.
let badge_style = Style::Plastic(badge);

Badge and Style together are sufficient to tell RSBadges how to construct the right badge, which it does through generate_svg():

let badge_svg = badge_style.generate_svg().unwrap();

The resulting SVG String can be saved to file using the convenience function save_svg():

rsbadges::save_svg("~/Downloads/badge.svg", &badge_svg);

See the Badge and Style documentation for more.


The CLI features all of the customization options from the API, along with a few quality-of-life improvements for command line use and evaluation, such as

  • Opening a created badge SVG in browser after creation
  • Specifying a save directory for the SVG

Valid argument formats match those found in the API (see Badge). Don’t worry if you get it wrong; RSBadges will let you know.

-a--label <string>“test”
-b--label-color <css_color>“#555”
-c--label-link <url>“”
-x--msg <string>“test”
-y--msg-color <css_color>“#007ec6”
-z--msg-link <url>“”
-l--logo <url or local path>“”
-f--save-to-svg-at <filepath/file.svg>“”
-s--style <plastic,flat,flatsquare,forthebadge,social>“flat”

Run the CLI with the -h flag to see all possible arguments and flags.


  • Holds generic info about a badge.


  • Error types that may occur on badge generation.
  • A badge container used to format and generate a badge SVG.


  • A convenience function to save an SVG to a file.