Silicon is an alternative to Carbon implemented in Rust.

Overview

Silicon

Crates.io Documentation CI License

Silicon is an alternative to Carbon implemented in Rust.

It can render your source code into a beautiful image.

Why Silicon

Carbon is a wonderful tool to create a beautiful image of your source code.

But it is a web application, which brings the following disadvantages:

  • Cannot work without Internet & browser.
  • Doesn't work well with shell. (Although there is carbon-now-cli, its experience is not very good, especially when the network is not so good.)

However, Silicon doesn't have these problems. It's is implemented in Rust and can work without browser & Internet.

Silicon can render your source code on the fly while carbon-now-cli takes several seconds on it.

Disadvantages

It's not as beautiful as Carbon...

Install

Cargo

cargo install silicon

AUR

Silicon is available on AUR (Thanks to @radmen).

You can install it with any AUR helpers you like.

eg.

pikaur -S silicon

Homebrew

You can install Silicon using Homebrew:

brew install silicon

Dependencies

Ubuntu

sudo apt install expat
sudo apt install libxml2-dev
sudo apt install pkg-config libasound2-dev libssl-dev cmake libfreetype6-dev libexpat1-dev libxcb-composite0-dev

Fedora

sudo dnf install cmake expat-devel libxcb-devel freetype-devel libxml2-devel

Arch Linux

sudo pacman -S --needed pkgconf freetype2 fontconfig libxcb xclip

Examples

Read code from file

silicon main.rs -o main.png 

Read code from clipboard, and copy the result image to clipboard

silicon --from-clipboard -l rs --to-clipboard

Specify a fallback font list and their size

silicon -o main.png -l bash -f 'Hack; SimSun=31; code2000' <<EOF
echo Hello
echo 你好
echo ∠( ᐛ 」∠)_
EOF

Highlight specified line

silicon main.rs -o main.png --highlight-lines '1; 3-4'

Custom the image

silicon ./target/test.rs -o test.png \
    --shadow-color '#555' --background '#fff' \
    --shadow-blur-radius 30 --no-window-controls

Transparent background

The color can be #RGB[A] or #RRGGBB[AA]

silicon ./target/test.rs -o test.png --background '#fff0'

see silicon --help for detail

Adding new syntaxes / themes

Silicon reads syntax-definition and theme cache from bat's cache directory.

You can find the steps to add new syntaxes / themes for bat here: sharkdp/bat#adding-new-syntaxes--language-definitions.

Configuration file

You can write some common args to silicon --config-file.

Example:

# enable shadow
--shadow-color '#555'
--background '#fff'
--shadow-blur-radius 30
--no-window-controls

Related projects

Issues
  • Silicon 0.4.0 on Big Sur generates empty window frames without text

    Silicon 0.4.0 on Big Sur generates empty window frames without text

    image

    I installed it using cargo install silicon after the latest pasteboard fixes were applied.

    I tried adding text via clipboard contents, from file and by entering it directly from stdin. In all cases the output image seems to be sized appropriate to amount of entered text, but the text itself is not visible.

    I wonder if this is a problem with fonts or themes, --list-themes as well as --list-fonts output non-empty lists. I've tried both default theme and font and custom theme (zenburn) and a fallback font (Hack).

    opened by berkus 11
  • Add to AUR

    Add to AUR

    Would you care to add it to the AUR package repository?

    Love the idea!

    opened by gunar 10
  • Please describe how to add support for additional languages

    Please describe how to add support for additional languages

    First, thank you so much for this, the UX is definitely better than the Carbon CLI tool.

    Currently I'm missing support for WebAssembly Text format and I'm not sure how to add support for it in Silicon.

    I noticed that you are pulling syntaxes and themes from the bat repository, and support hasn't been added for WebAssembly there yet. However, I was able to locally add support for it in bat following their instructions: https://github.com/sharkdp/bat#adding-new-syntaxes--language-definitions

    Is there a way to make silicon use my local bat cache, or a way I can add it to the list of assets?

    I thought about making a request to bat about adding support for WebAssembly, but unfortunately it seems they have a requirement of at least 10000 downloads for the syntax package, which is far from the current number of downloads.

    opened by iensu 9
  • Clipboard support

    Clipboard support

    Paste from clipboard

    • [x] Linux
    • [x] Windows
    • [x] macOS

    Copy to clipboard:

    • [x] Linux
    • [x] Windows
    • [x] macOS
    enhancement help wanted 
    opened by Aloxaf 7
  • Can't compile on FreeBSD

    Can't compile on FreeBSD

    Message:

    error: failed to run custom build command for `servo-fontconfig-sys v4.0.7`
    
    Caused by:
      process didn't exit successfully: `/tmp/cargo-installNdcMYr/release/build/servo-fontconfig-sys-43a39c049132ec64/build-script-build` (exit code: 101)
    --- stderr
    make: illegal argument to -j -- must be positive integer!
    thread 'main' panicked at 'assertion failed: Command::new("make").env("MAKEFLAGS",
                             env::var("CARGO_MAKEFLAGS").unwrap_or_default()).args(&["-R",
    
      "-f",
    
      "makefile.cargo"]).status().unwrap().success()', /home/kamron/.cargo/registry/src/github.com-1ecc6299db9ec823/servo-fontconfig-sys-4.0.7/build.rs:20:5
    note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    
    warning: build failed, waiting for other jobs to finish...
    error: failed to compile `silicon v0.2.5`, intermediate artifacts can be found
    at `/tmp/cargo-installNdcMYr`
    
    Caused by:
      build failed
    
    bug 
    opened by KamWithK 7
  • Add Apple Silicon Homebrew missing formula

    Add Apple Silicon Homebrew missing formula

    Overview

    Would it be possible to add a Homebrew formula for Apple Silcon machines?

    Steps to Recreate

    On a Apple Silicon machine, try running:

    brew install silicon
    

    You'll then get the following error:

    Warning: Treating silicon as a formula. For the cask, use homebrew/cask/silicon
    Error: silicon: no bottle available!
    

    Desired Behavior

    Would be nice to install Silicon via Homebrew without error.

    Environment

    macOS 11.2.1 (20D75) MacBook Air (M1, 2020)

    opened by bkuhlmann 7
  • Support background images

    Support background images

    This PR adds support for using images as a background

    • Added --background-image option, it is a path to the background image
    • Image is currently resized to fit (doesn't preserve aspect ratio)
    • Takes 2.5 seconds with a 6000x4000 image (500ms with solid color), maybe there's a way to make it faster
    • I'm a Rust newbie so my code can be bad, please let me know if there's a way to make it better
    opened by iamalicecarroll 7
  • Windows support

    Windows support

    wating for https://github.com/pcwalton/font-kit/issues/85

    bug upstream 
    opened by Aloxaf 6
  • Allow zero for `--highlight-lines` value

    Allow zero for `--highlight-lines` value

    Overview

    Would it be possible to allow zero as a safe value for --highlight-lines? Example:

    silicon --to-clipboard --highlight-lines 0 example.rb
    

    Essentially, a value of zero would be like a no-op and as if the --highlight-lines option was never used. The reason why this is valuable is for wrapping in a shell script. Without this being possible, the following error happens instead:

    Segmentation fault: 11
    

    Screenshots/Screencasts

    Here is an example of a shell script that sets --highlight-lines to zero as a default option which will fail with the above mentioned error. It would be nice to allow zero in this situation.

    image

    Steps to Recreate

    touch example.rb
    silicon --to-clipboard --highlight-lines 0 example.rb
    

    Desired Behavior

    Don't throw a segfault and ignore --highlight-lines instead since it's a no-op.

    opened by bkuhlmann 5
  • Encoding in windows

    Encoding in windows

    image

    opened by zxj5470 5
  • chore(deps): bump clipboard-win from 4.2.1 to 4.2.2

    chore(deps): bump clipboard-win from 4.2.1 to 4.2.2

    Bumps clipboard-win from 4.2.1 to 4.2.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump structopt from 0.3.21 to 0.3.25

    chore(deps): bump structopt from 0.3.21 to 0.3.25

    Bumps structopt from 0.3.21 to 0.3.25.

    Changelog

    Sourced from structopt's changelog.

    v0.3.25 (2021-10-18)

    • Fix duplication of aliases in subcommands #504

    v0.3.25 (2021-10-18)

    • No changes

    v0.3.23 (2021-08-30)

    v0.3.22 (2021-07-04)

    Commits
    • da1fff8 v0.3.25
    • e83b0fc Merge branch 'master' of github.com:TeXitoi/structopt
    • 6dc2963 v0.4.17
    • ddb51cb Fix duplication of aliases in subcommands
    • 701d6dd Remove most ignores and the should_panic from code blocks in documentation
    • d30aff1 Improve doc code block formatting
    • 32d6e6d Bless Rust 1.55 test output
    • 88e5402 v0.3.23
    • 6d922d1 Add skip attribute support for enum variants (#494)
    • 7fef417 Fix the problem where the build fails due to the ambiguous type of map (#491)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump dirs from 3.0.2 to 4.0.0

    chore(deps): bump dirs from 3.0.2 to 4.0.0

    Bumps dirs from 3.0.2 to 4.0.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump syntect from 4.5.0 to 4.6.0

    chore(deps): bump syntect from 4.5.0 to 4.6.0

    Bumps syntect from 4.5.0 to 4.6.0.

    Release notes

    Sourced from syntect's releases.

    Fixes and new APIs

    • Add html::line_tokens_to_classed_spans to also take a mutable ScopeStack, deprecate tokens_to_classed_spans, to avoid panics and incorrect highlighting.
    • Derive Hash for Color and Style
    • Add find_unlinked_contexts to SyntaxSet
    • Add syntaxes method to SyntaxSetBuilder
    • Bump fancy-regex to v0.7 and yaml-rust to v0.4.5
    Changelog

    Sourced from syntect's changelog.

    Version 4.6.0 (2021-08-01)

    • Add html::line_tokens_to_classed_spans to also take a mutable ScopeStack, deprecate tokens_to_classed_spans, to avoid panics and incorrect highlighting.
    • Derive Hash for Color and Style
    • Add find_unlinked_contexts to SyntaxSet
    • Add syntaxes method to SyntaxSetBuilder
    • Bump fancy-regex to v0.7 and yaml-rust to v0.4.5
    Commits
    • cadc2bd Bump to v4.6.0
    • 77514b2 Merge branch 'Keats-scopestack'
    • fdcebba Revert removal of deprecated methods
    • f025bbe Fix build issue by updating yaml-rust requirement
    • 15f9229 Merge pull request #344 from Enselic/bump-fancy-regex-to-0.7
    • 3ec0bff Bump fancy-regex to 0.7
    • 2ded9ac Merge pull request #342 from Enselic/start-using-github-actions-instead-of-tr...
    • d868092 Merge pull request #341 from Enselic/fix-all-non_fmt_panic-compilation-warnings
    • 1f8b1de Start using GitHub Actions instead of Travis CI
    • b436fb9 Fix all non_fmt_panic compilation warnings
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Specify range feature

    Specify range feature

    I tried to implement a feature for specifying range of code you would want to be copied

    The feature is rough around the edges, but it works with passing a --start and --end value into the application. Then it just runs on the range.

    opened by cNorspang 0
  • Wrapping long lines

    Wrapping long lines

    Is there a way to wrap long lines? Currently, it generates a very wide image in such a case.

    opened by shantanugoel 0
  • chore(deps): bump env_logger from 0.8.3 to 0.9.0

    chore(deps): bump env_logger from 0.8.3 to 0.9.0

    Bumps env_logger from 0.8.3 to 0.9.0.

    Release notes

    Sourced from env_logger's releases.

    v0.9.0

    Breaking Changes:

    • Default message format now prints the target instead of the module

    Improvements:

    • Added a method to print the module instead of the target

    0.8.4

    Improvements:

    • Allow writing logs to a custom output target (via Target::Pipe)

    Bug fixes:

    • Actually allow overriding filter levels using env_logger::Builders methods, as documented
    Commits
    • 04856ac bump version to 0.9.0
    • e4744ff Merge pull request #209 from gtsiam/main
    • c5fa7a2 refactor: fix clippy warnings
    • 34574df Update link to examples
    • 1888497 Clarified documentation about log filtering
    • 365ffaf Show target instead of module path by default
    • d2998a6 Add option to print log target
    • 13cafce Bump version to 0.8.4
    • 0900811 Ensure unique directive names when building filters
    • 1a8379a Allow writing logs to a custom output target (Target::Pipe)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump dirs from 3.0.1 to 3.0.2

    chore(deps): bump dirs from 3.0.1 to 3.0.2

    ⚠️ Dependabot Preview has been deactivated ⚠️

    This pull request was created by Dependabot Preview, and you've upgraded to Dependabot. This means it won't respond to dependabot commands nor will it be automatically closed if a new version is found.

    If you close this pull request, Dependabot will re-create it the next time it checks for updates and everything will work as expected.


    Bumps dirs from 3.0.1 to 3.0.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • chore(deps): bump clipboard-win from 4.0.3 to 4.1.0

    chore(deps): bump clipboard-win from 4.0.3 to 4.1.0

    ⚠️ Dependabot Preview has been deactivated ⚠️

    This pull request was created by Dependabot Preview, and you've upgraded to Dependabot. This means it won't respond to dependabot commands nor will it be automatically closed if a new version is found.

    If you close this pull request, Dependabot will re-create it the next time it checks for updates and everything will work as expected.


    Bumps clipboard-win from 4.0.3 to 4.1.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • chore(deps): bump anyhow from 1.0.38 to 1.0.40

    chore(deps): bump anyhow from 1.0.38 to 1.0.40

    ⚠️ Dependabot Preview has been deactivated ⚠️

    This pull request was created by Dependabot Preview, and you've upgraded to Dependabot. This means it won't respond to dependabot commands nor will it be automatically closed if a new version is found.

    If you close this pull request, Dependabot will re-create it the next time it checks for updates and everything will work as expected.


    Bumps anyhow from 1.0.38 to 1.0.40.

    Release notes

    Sourced from anyhow's releases.

    1.0.40

    • Reduce memory footprint of errors on Rust versions 1.51+ (#145)

    1.0.39

    • Add an opt-in implementation of Error::backtrace on stable compilers based on the backtrace crate (#143)

      [dependencies]
      anyhow = { version = "1.0", features = ["backtrace"] }
      
    Commits
    • 704622f Release 1.0.40
    • 64ac0c0 Merge pull request #145 from dtolnay/addrof
    • ef08267 Eliminate functionally duplicate vtable methods on rustc 1.51+
    • 1295b1f Add additional builds on 1.50 and 1.51 validating addr_of codepath
    • be89adf Detect whether ptr::addr_of is supported by current compiler
    • ac64560 Switch object_ref return from real ref to Ref ptr
    • 2987c9b Ignore redundant_else pedantic clippy lint
    • 827bb9d Catch some warnings in addr_of-related codepaths
    • ce00418 Merge pull request #144 from dtolnay/ptr
    • 3c32aa7 Relax Sized bound on Own, Ref, Mut ptrs
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
Releases(v0.4.3)
Owner
Aloxaf
coder, ingresser
Aloxaf
Encoding and decoding images in Rust

Image Maintainers: @HeroicKatora, @fintelia How to contribute An Image Processing Library This crate provides basic image processing functions and met

image-rs 2.5k Nov 22, 2021
Rust bindings for OpenCV 3 & 4

Rust OpenCV bindings Experimental Rust bindings for OpenCV 3 and 4. The API is usable, but unstable and not very battle-tested; use at your own risk.

null 785 Nov 25, 2021
A simple steganography library written in rust

steganography A stable steganography library written in rust Crates.io Usage Add the following to the Cargo.toml in your project: [dependencies] stega

Teodor Voinea 67 Nov 5, 2021
Zero dependency images (of chaos) in Rust

bifurcate-rs Zero dependency images (of chaos) in Rust To run: time cargo run --release > img.pgm To convert from PGM to PNG using Image Magick: conve

Stephen Merity 32 Nov 17, 2021
tai (Terminal Ascii Image) tool to convert images to ascii written in Rust

TAI Terminal Ascii Image A tool to convert images to ascii art written in Rust ?? Notes This tool is still in development stage. Contributions All Con

Mustafa Salih 211 Nov 25, 2021
🎨 Example-based texture synthesis written in Rust 🦀

?? texture-synthesis A light Rust API for Multiresolution Stochastic Texture Synthesis [1], a non-parametric example-based algorithm for image generat

Embark 1.5k Nov 26, 2021
Face detection library for the Rust programming language

Rustface SeetaFace detection library for the Rust programming language Example of demo program output SEETAFACE C++ – Github repository for the origin

Andrei Tomashpolskiy 290 Nov 18, 2021
Rust CV mono-repo

Rust CV Rust CV is a project to implement computer vision algorithms, abstractions, and systems in Rust. #[no_std] is supported where possible. Docume

Rust Computer Vision 239 Nov 28, 2021
Visual Odometry in Rust (vors)

Visual Odometry in Rust (vors) This repository provides both a library ("crate" as we say in Rust) named visual-odometry-rs, (shortened vors) and a bi

Matthieu Pizenberg 30 Nov 18, 2021
A Telegram Bot written in Rust to Track new Github releases

Release Tracker This is used to track Releases posted on GitHub Releases and Post it on a Telegram Channel/Group. Setup Export env variables or just f

Kartikeya Hegde 12 Jun 30, 2021
A Simple-to-use, cross-platform Rust Webcam Capture Library

Cross Platform Rust Library for powerful Webcam Capture and Virtual Webcams

null 79 Nov 20, 2021
Classical Rainbow Triangle using Rust and Vulkan via vulkano bindings

Vulkano Rainbow Triangle Classical Rainbow Triangle using Rust and Vulkan via vulkano bindings. Based on the vulkano triangle example Quick Start $ ca

Tsoding 8 Jun 8, 2021
A simple image average color extractor written in 🦀 Rust

A simple image average color extractor written in ?? Rust

Victor Aremu 3 Sep 23, 2021
A simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art version constructed with emoji

EmojiPix This is a simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art vers

Michael Milton 13 Oct 5, 2021
A Simple Image to Ascii converter in Rust

Image to Ascii A Simple Image to Ascii converter in Rust Brief ?? In my way to learn Rust i decided to make this converter. Challenges ?? new to Rust

WasixXD 2 Nov 8, 2021
😱 Dead fast thumbnail library for browser and NodeJs! Built with Rust 🦀 and WebAssembly 🕸

thumbo-core ?? Dead fast thumbnail library for browser and NodeJs Built with Rust ?? & WebAssembly ?? ?? About thumbo-core is a thubnail library for b

Victor Aremu 8 Nov 6, 2021
@Buildspace project creating a Web3 Solana Dapp with React and Rust

buildspace Solana GIF Portal Project Welcome ?? To get started with this course, clone this repo and follow these commands: Run npm install at the roo

Nick Fragakis 0 Nov 7, 2021
Boids example ported from wgpu to rust-gpu

wgpu is Rust's main GPU project and rust-gpu is a project to write GPU shaders in Rust.

Thomas Buckley-Houston 1 Nov 15, 2021
OpenCV Sample Projects in Rust

OpenCV Sample Projects in Rust

iwatake 8 Nov 27, 2021