Detect polymer contaminants in mass spectra.

Overview

🦨 mzsniffer 👃

Detect polymer contaminants in mass spectra.

Introduction

Mzsniffer is a command line application to quickly detect common polymer contaminants in mass spectrometry experiments. It is pretty dumb - mzsniffer merely extracts the intensities for common polymer precursors from the MS1 spectra of one or more mzML files. What it lacks in sophistication, mzsniffer makes up for in speed 🚀 . It only takes a few seconds to analyze most mzML files!

By default, mzsniffer logs the percentage of the total ion current that each polymer comprises. However, more detailed information can be saved to either JSON or as a pickled Python object using stdout (see the examples below).

Give it a try and let me know how it goes!

Installation

Install from bioconda

Coming soon!

Manually download the latest release

The latest release can be manually downloaded from GitHub:

  1. Navigate to the Releases page.
  2. Download the correct binary for your system.
  3. Run mzsniffer (from the directory to which it was downloaded):
mzsniffer --help

Usage

mzsniffer is a command line program and can be run in your favorite shell:

 $ mzsniffer --help
 Usage: mzsniffer [OPTIONS] [mzml_paths]...

🦨 mzsniffer 👃 - Detect polymer conminants in mass spectra.

Written by William E. Fondrie <[email protected]>
Version 0.1.0

Arguments:
  [mzml_paths]...  The mzML file(s) to analyze.

Options:
  -t, --tolerance <tol>  The precursor mass tolerance. [default: 10]
  -d, --use-da           Use Da instead of ppm as the precursor mass tolerance unit.
  -f, --format <format>  Specify an output format to be sent to stdout. Must be one of 'json' or 'pickle'.
  -h, --help             Print help
  -V, --version          Print version

When provided one or more mzML files, mzsniffer will look for common polymer contaminants:

$ mzsniffer data/MSV000081544.20170728_MS1_17k_plasmaspikedPEG_3.mzML
[INFO ] Reading data/MSV000081544.20170728_MS1_17k_plasmaspikedPEG_3.mzML...
[INFO ]  - Read time:  1s
[INFO ] Extracting MS1 signals of polymer contaminants...
[INFO ]  - Extraction time:  1s
[INFO ] ++++++++++++++++++++++++++++++++++++
[INFO ] Polymer                         %TIC
[INFO ] ++++++++++++++++++++++++++++++++++++
[INFO ] PEG+1H                       14.2581
[INFO ] PEG+2H                        0.6921
[INFO ] PEG+3H                        0.0013
[INFO ] PPG                           0.0071
[INFO ] Triton X-100                  0.0033
[INFO ] Triton X-100 (Reduced)        0.0074
[INFO ] Triton X-100 (Na)             0.0010
[INFO ] Triton X-100 (Reduced, Na)    0.0023
[INFO ] Triton X-101                  0.0017
[INFO ] Triton X-101 (Reduced)        0.0013
[INFO ] Polysiloxane                  0.0029
[INFO ] Tween-20                      0.0005
[INFO ] Tween-40                      0.0013
[INFO ] Tween-60                      0.1121
[INFO ] Tween-80                      0.0027
[INFO ] IGEPAL CA-630 (NP-40)         0.0017
[INFO ] ++++++++++++++++++++++++++++++++++++
[INFO ]
[INFO ] DONE!
[INFO ] Elapsed time:  3s

Using the --format argument, you can save more detailed results to as JSON or a pickled Python object. Below, we pipe the JSON output to a short Python script to plot the summed extracted ion chromatogram for each contaminant:

$ mzsniffer data/MSV000081544.20170728_MS1_17k_plasmaspikedPEG_3.mzML --format json | scripts/example_plot.py

The example plot

Attributions

The mzML parsing code in mzsniffer was directly adapted from Sage by @lazear... dragons 🐉 and all.

Most of the polymers were adapted from EncyclopeDIA by @briansearle.

Comments
  • Bump quick-xml from 0.25.0 to 0.27.1

    Bump quick-xml from 0.25.0 to 0.27.1

    Bumps quick-xml from 0.25.0 to 0.27.1.

    Release notes

    Sourced from quick-xml's releases.

    Fix an infinite loop in some circumstates

    What's Changed

    Bug Fixes

    • #530: Fix an infinite loop leading to unbounded memory consumption that occurs when skipping events on malformed XML with the overlapped-lists feature active.
    • #530: Fix an error in the Deserializer::read_to_end when overlapped-lists feature is active and malformed XML is parsed

    #530: tafia/quick-xml#530

    Full Changelog: https://github.com/tafia/quick-xml/compare/v0.27.0...v0.27.1

    Improvements in serde deserializer and MSRV bumped to 1.52

    What's Changed

    MSRV was increased from 1.46 to 1.52 in #521.

    New Features

    • #521: Implement Clone for all error types. This required changing Error::Io to contain Arc<std::io::Error> instead of std::io::Error since std::io::Error does not implement Clone.

    Bug Fixes

    • #490: Ensure that serialization of map keys always produces valid XML names. In particular, that means that maps with numeric and numeric-like keys (for example, "42") no longer can be serialized because [XML name] cannot start from a digit
    • #500: Fix deserialization of top-level sequences of enums, like
      <?xml version="1.0" encoding="UTF-8"?>
      <!-- list of enum Enum { A, B, С } -->
      <A/>
      <B/>
      <C/>
      
    • #514: Fix wrong reporting Error::EndEventMismatch after disabling and enabling .check_end_names
    • #517: Fix swapped codes for \r and \n characters when escaping them
    • #523: Fix incorrect skipping text and CDATA content before any map-like structures in serde deserializer, like
      unwanted text<struct>...</struct>
      
    • #523: Fix incorrect handling of xs:lists with encoded spaces: they still act as delimiters, which is confirmed also by mature XmlBeans Java library
    • #473: Fix a hidden requirement to enable serde's derive feature to get

    ... (truncated)

    Changelog

    Sourced from quick-xml's changelog.

    0.27.1 -- 2022-12-28

    Bug Fixes

    • #530: Fix an infinite loop leading to unbounded memory consumption that occurs when skipping events on malformed XML with the overlapped-lists feature active.
    • #530: Fix an error in the Deserializer::read_to_end when overlapped-lists feature is active and malformed XML is parsed

    #530: tafia/quick-xml#530

    0.27.0 -- 2022-12-25

    New Features

    • #521: Implement Clone for all error types. This required changing Error::Io to contain Arc<std::io::Error> instead of std::io::Error since std::io::Error does not implement Clone.

    Bug Fixes

    • #490: Ensure that serialization of map keys always produces valid XML names. In particular, that means that maps with numeric and numeric-like keys (for example, "42") no longer can be serialized because [XML name] cannot start from a digit
    • #500: Fix deserialization of top-level sequences of enums, like
      <?xml version="1.0" encoding="UTF-8"?>
      <!-- list of enum Enum { A, B, С } -->
      <A/>
      <B/>
      <C/>
      
    • #514: Fix wrong reporting Error::EndEventMismatch after disabling and enabling .check_end_names
    • #517: Fix swapped codes for \r and \n characters when escaping them
    • #523: Fix incorrect skipping text and CDATA content before any map-like structures in serde deserializer, like
      unwanted text<struct>...</struct>
      
    • #523: Fix incorrect handling of xs:lists with encoded spaces: they still act as delimiters, which is confirmed also by mature XmlBeans Java library
    • #473: Fix a hidden requirement to enable serde's derive feature to get quick-xml's serialize feature for edition = 2021 or resolver = 2 crates

    Misc Changes

    • #490: Removed $unflatten= special prefix for fields for serde (de)serializer, because:
      • it is useless for deserializer

    ... (truncated)

    Commits
    • 89fa620 Release 0.27.1 - fix for #530
    • b99adec Remove excess test. That test is duplicated by read_to_end::complex
    • 88455b4 Fix an error in the Deserializer::read_to_end when feature "overlapped-list...
    • 75ae6c7 Add test for reading invalid XML to the end
    • 85eeb2e Fix infinity loop in skip when parsing malformed XML
    • f63910d Release 0.27.0
    • d1908e6 Merge pull request #528 from Mingun/doc
    • 66275cc Add an example for deserializing wrapped lists
    • c521a2f Add documentation for mapping from XML to Rust used by deserializer
    • 44a4c69 Merge pull request #524 from Mingun/serde
    • 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 rust 
    opened by dependabot[bot] 0
  • Bump futures from 0.3.26 to 0.3.27

    Bump futures from 0.3.26 to 0.3.27

    Bumps futures from 0.3.26 to 0.3.27.

    Release notes

    Sourced from futures's releases.

    0.3.27

    • Add TryFlattenUnordered (#2577, #2590, #2606, #2607)
    • Add AbortHandle::is_aborted (#2710)
    • Add AbortRegistration::handle (#2712)
    • Make BiLock strict-provenance compatible (#2716)
    Changelog

    Sourced from futures's changelog.

    0.3.27 - 2023-03-11

    • Add TryFlattenUnordered (#2577, #2590, #2606, #2607)
    • Add AbortHandle::is_aborted (#2710)
    • Add AbortRegistration::handle (#2712)
    • Make BiLock strict-provenance compatible (#2716)
    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 rust 
    opened by dependabot[bot] 0
  • Bump serde from 1.0.152 to 1.0.155

    Bump serde from 1.0.152 to 1.0.155

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps serde from 1.0.152 to 1.0.155.

    Release notes

    Sourced from serde's releases.

    v1.0.155

    • Support Serialize and Deserialize impls for core::ffi::CStr and alloc::ffi::CString without "std" feature (#2374, thanks @​safarir)

    v1.0.154

    • Fix "undeclared lifetime" error in generated code when deriving Deserialize for an enum with both flatten and 'static fields (#2383, thanks @​Mingun)

    v1.0.153

    • Support serde(alias = "…") attribute used inside of flattened struct (#2387, thanks @​bebecue)
    Commits
    • 2ba4067 Release 1.0.155
    • 7e9826e Add link to core CStr stabilization announcement
    • f4dcc5c Merge pull request #2374 from safarir/master
    • 8b1887c Remove unneeded attr_name argument when parsing borrow attr
    • bbfb1d3 Merge pull request #2399 from dtolnay/borrow
    • e106feb Eagerly parse variant-level borrow attribute instead of deferring entire Meta
    • 696f6f5 Merge pull request #2398 from dtolnay/borrow
    • b7b636a Treat field-level borrow attr as duplicate of variant-level borrow attr
    • 183b917 Fix some comments in parsing of from/try_from/into attributes
    • 0e70f59 Merge pull request #2396 from dtolnay/msg
    • 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 rust 
    opened by dependabot[bot] 0
  • Bump clap from 4.1.8 to 4.1.11

    Bump clap from 4.1.8 to 4.1.11

    Bumps clap from 4.1.8 to 4.1.11.

    Release notes

    Sourced from clap's releases.

    v4.1.11

    [4.1.11] - 2023-03-17

    Internal

    • Update bitflags

    v4.1.10

    [4.1.10] - 2023-03-17

    Fixes

    • (help) On Windows, avoid underlined text artifacts
    Changelog

    Sourced from clap's changelog.

    [4.1.11] - 2023-03-17

    Internal

    • Update bitflags

    [4.1.10] - 2023-03-17

    Fixes

    • (help) On Windows, avoid underlined text artifacts

    [4.1.9] - 2023-03-16

    Fixes

    • (assert) Improve the assert when using the wrong action with get_count / get_flag
    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 rust 
    opened by dependabot[bot] 0
  • Bump quick-xml from 0.27.1 to 0.28.1

    Bump quick-xml from 0.27.1 to 0.28.1

    Bumps quick-xml from 0.27.1 to 0.28.1.

    Release notes

    Sourced from quick-xml's releases.

    Relax requirements in ElementWriter.write_inner_content

    What's Changed

    Misc Changes

    • #579: ElementWriter.write_inner_content now uses a FnOnce instead of a more restrictive Fn closure

    #579: tafia/quick-xml#579

    New Contributors

    Full Changelog: https://github.com/tafia/quick-xml/compare/v0.28.0...v0.28.1

    Improvements in serde and async

    What's Changed

    New Features

    • #541: (De)serialize specially named $text enum variant in [externally tagged] enums to / from textual content
    • #556: to_writer and to_string now accept ?Sized types
    • #556: Add new to_writer_with_root and to_string_with_root helper functions
    • #520: Add methods BytesText::inplace_trim_start and BytesText::inplace_trim_end to trim leading and trailing spaces from text events
    • #565: Allow deserialize special field names $value and $text into borrowed fields when use serde deserializer
    • #568: Rename Writter::inner into Writter::get_mut
    • #568: Add method Writter::get_ref
    • #569: Rewrite the Reader::read_event_into_async as an async fn, making the future Send if possible.
    • #571: Borrow element names (<element>) when deserialize with serde. This change allow to deserialize into HashMap<&str, T>, for example
    • #573: Add basic support for async byte writers via tokio's AsyncWrite.

    Bug Fixes

    • #537: Restore ability to deserialize attributes that represents XML namespace mappings (xmlns:xxx) that was broken since #490
    • #510: Fix an error of deserialization of Option<T> fields where T is some sequence type (for example, Vec or tuple)
    • #540: Fix a compilation error (probably a rustc bug) in some circumstances. Serializer::new and Serializer::with_root now accepts only references to Writer.
    • #520: Merge consequent (delimited only by comments and processing instructions) texts and CDATA when deserialize using serde deserializer. DeEvent::Text and DeEvent::CData events was replaced by DeEvent::Text with merged content. The same behavior for the Reader does not implemented (yet?) and should be implemented manually
    • #562: Correctly set minimum required version of memchr dependency to 2.1
    • #565: Correctly set minimum required version of tokio dependency to 1.10
    • #565: Fix compilation error when build with serde <1.0.139

    ... (truncated)

    Changelog

    Sourced from quick-xml's changelog.

    0.28.1 -- 2023-03-19

    Misc Changes

    • #579: ElementWriter.write_inner_content now uses a FnOnce instead of a more restrictive Fn closure

    #579: tafia/quick-xml#579

    0.28.0 -- 2023-03-13

    New Features

    • #541: (De)serialize specially named $text enum variant in externally tagged enums to / from textual content
    • #556: to_writer and to_string now accept ?Sized types
    • #556: Add new to_writer_with_root and to_string_with_root helper functions
    • #520: Add methods BytesText::inplace_trim_start and BytesText::inplace_trim_end to trim leading and trailing spaces from text events
    • #565: Allow deserialize special field names $value and $text into borrowed fields when use serde deserializer
    • #568: Rename Writter::inner into Writter::get_mut
    • #568: Add method Writter::get_ref
    • #569: Rewrite the Reader::read_event_into_async as an async fn, making the future Send if possible.
    • #571: Borrow element names (<element>) when deserialize with serde. This change allow to deserialize into HashMap<&str, T>, for example
    • #573: Add basic support for async byte writers via tokio's AsyncWrite.

    Bug Fixes

    • #537: Restore ability to deserialize attributes that represents XML namespace mappings (xmlns:xxx) that was broken since #490
    • #510: Fix an error of deserialization of Option<T> fields where T is some sequence type (for example, Vec or tuple)
    • #540: Fix a compilation error (probably a rustc bug) in some circumstances. Serializer::new and Serializer::with_root now accepts only references to Writer.
    • #520: Merge consequent (delimited only by comments and processing instructions) texts and CDATA when deserialize using serde deserializer. DeEvent::Text and DeEvent::CData events was replaced by DeEvent::Text with merged content. The same behavior for the Reader does not implemented (yet?) and should be implemented manually
    • #562: Correctly set minimum required version of memchr dependency to 2.1
    • #565: Correctly set minimum required version of tokio dependency to 1.10
    • #565: Fix compilation error when build with serde <1.0.139

    #490: tafia/quick-xml#490 #510: tafia/quick-xml#510 #520: tafia/quick-xml#520

    ... (truncated)

    Commits
    • 2e9123a Release v0.28.1
    • 5614b9d Follow-up of #579 -- add a reference to changelog
    • dd4c89e Makes ElementWriter.write_inner_content take FnOnce instead of Fn
    • 642de0a Release 0.28.0
    • fe9b040 Get rid warning when compile without "serialize" feature
    • 42e2350 Fix incorrect name of event in error variant documentation
    • 1ec074d Add path argument to an example otherwise cargo package complains
    • 1a967a6 Update introduction text with information about features and a quick link to ...
    • 180f828 Give more descriptive names to some variables
    • b1a23a1 Add some documentation to internal macros and functions that implements parser
    • 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 rust 
    opened by dependabot[bot] 0
  • Bump anyhow from 1.0.69 to 1.0.70

    Bump anyhow from 1.0.69 to 1.0.70

    Bumps anyhow from 1.0.69 to 1.0.70.

    Release notes

    Sourced from anyhow's releases.

    1.0.70

    • Update syn dependency to 2.x
    Commits
    • e4db1f9 Release 1.0.70
    • 10f5994 Merge pull request #302 from dtolnay/syn
    • 4a6b90c Update to syn 2
    • 553ed38 Update clippy.toml msrv to match rust-version in Cargo.toml
    • d30b027 Ignore let_underscore_untyped pedantic clippy lint
    • 2c2803f Merge pull request #298 from dtolnay/constblock
    • b249287 Support const block syntax in ensure! macro
    • 80d4c8d Retitle the randomize-layout CI step
    • 4804a78 Support a manual trigger on CI workflow
    • 347b473 Test with randomized type layout on nightly
    • 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 rust 
    opened by dependabot[bot] 0
  • Bump serde from 1.0.155 to 1.0.157

    Bump serde from 1.0.155 to 1.0.157

    Bumps serde from 1.0.155 to 1.0.157.

    Release notes

    Sourced from serde's releases.

    v1.0.157

    • Update syn dependency to 2.x

    v1.0.156

    • Documentation improvements
    Commits
    • 479a00a Release 1.0.157
    • c42e7c8 Reflect serde_derive required compiler in build script and rust-version metadata
    • 5b8e065 Ignore single_match_else pedantic clippy lint in serde_derive_internals
    • 9fc0d13 Merge pull request #2406 from dtolnay/nestedmeta
    • bc22641 Rewrite attribute parser using parse_nested_meta
    • 0509810 Update compiler version for serde_derive in readme
    • 5b23634 Merge pull request #2405 from dtolnay/syn
    • 32f0d00 Update to syn 2
    • 9d87851 Merge pull request #2404 from dtolnay/attributeexpr
    • c0296ee Add ui test of malformed attribute containing expression
    • 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 rust 
    opened by dependabot[bot] 0
  • Bump base64 from 0.13.1 to 0.21.0

    Bump base64 from 0.13.1 to 0.21.0

    Bumps base64 from 0.13.1 to 0.21.0.

    Changelog

    Sourced from base64's changelog.

    0.21.0

    Migration

    Functions

    < 0.20 function 0.21 equivalent
    encode() engine::general_purpose::STANDARD.encode() or prelude::BASE64_STANDARD.encode()
    encode_config() engine.encode()
    encode_config_buf() engine.encode_string()
    encode_config_slice() engine.encode_slice()
    decode() engine::general_purpose::STANDARD.decode() or prelude::BASE64_STANDARD.decode()
    decode_config() engine.decode()
    decode_config_buf() engine.decode_vec()
    decode_config_slice() engine.decode_slice()

    The short-lived 0.20 functions were the 0.13 functions with config replaced with engine.

    Padding

    If applicable, use the preset engines engine::STANDARD, engine::STANDARD_NO_PAD, engine::URL_SAFE, or engine::URL_SAFE_NO_PAD. The NO_PAD ones require that padding is absent when decoding, and the others require that canonical padding is present .

    If you need the < 0.20 behavior that did not care about padding, or want to recreate < 0.20.0's predefined Configs precisely, see the following table.

    0.13.1 Config 0.20.0+ alphabet encode_padding decode_padding_mode
    STANDARD STANDARD true Indifferent
    STANDARD_NO_PAD STANDARD false Indifferent
    URL_SAFE URL_SAFE true Indifferent
    URL_SAFE_NO_PAD URL_SAFE false Indifferent

    0.21.0-rc.1

    • Restore the ability to decode into a slice of precisely the correct length with Engine.decode_slice_unchecked.
    • Add Engine as a pub use in prelude.

    0.21.0-beta.2

    Breaking changes

    • Re-exports of preconfigured engines in engine are removed in favor of base64::prelude::... that are better suited to those who wish to use the entire path to a name.

    0.21.0-beta.1

    Breaking changes

    ... (truncated)

    Commits
    • d7fb31c v0.21.0
    • 8350376 Merge pull request #207 from marshallpierce/mp/api-rework
    • 726f784 v0.21.0-rc.1
    • b29ab01 Add Engine in prelude
    • 64bbcc0 Remove no longer needed test helpers
    • 0f981bd Add decode_slice_unchecked to restore ability to decode into a precisely size...
    • a51e822 v0.21.0-beta.2
    • 936569a Move re-exports from engine to prelude
    • 53e1091 Fix release notes typo
    • b03eb5a v0.21.0-beta.1
    • 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 rust 
    opened by dependabot[bot] 0
Owner
Will Fondrie
Mass Spectrometry, Proteomics, and Machine Learning
Will Fondrie
CLI tool for mass tweet deletion

Damae Damae is a simple CLI tool for mass-deleting tweets. Its name comes from the Latin phrase "damnatio memoriae", which means "condemnation of memo

null 3 Jan 30, 2022
Tool for mass import of hosts into Zabbix (and other API functions)

zabbix-tools A CLI tool for interacting with Zabbix API built in Rust. Designed for Zabbix 6.0. Functions added to test API and add hosts manually or

null 1 Apr 21, 2022
command line tools for coprolite research (paleontology and archaeology): estimate the producer's body mass based on coprolite diameter by the use of regression models

OVERVIEW OF COPROSIZE coprosize employs power, exponential and cubic regression models allowing to estimate the producer's body mass based on coprolit

Piotr Bajdek 7 Nov 25, 2022
Tool and framework for securely reading untrusted USB mass storage devices.

usbsas is a free and open source (GPLv3) tool and framework for securely reading untrusted USB mass storage devices. Description Following the concept

CEA IT Security 250 Aug 16, 2023
A save editor for Mass Effect Trilogy

Trilogy Save Editor A save editor for Mass Effect Trilogy A bit late but just in time ! This software is similar to Gibbed's save editors (and forks)

Karlitos 118 Dec 25, 2022
1 library and 2 binary crates to run SSH/SCP commands on a "mass" of hosts in parallel

massh 1 library and 2 binary crates to run SSH/SCP commands on a "mass" of hosts in parallel. The binary crates are CLI and GUI "frontends" for the li

null 2 Oct 16, 2022
CLI tool for mass tweet deletion

Damae Damae is a simple CLI tool for mass-deleting tweets. Its name comes from the Latin phrase "damnatio memoriae", which means "condemnation of memo

null 3 Jan 30, 2022
Adds a uf2 header Microsofts HID Flashing Format (UF2) for copying over to UF2 bootloader mass storage devices

uf2conv Adds a uf2 header Microsofts HID Flashing Format (UF2) for copying over to UF2 bootloader mass storage devices. UF2 is factory programmed exte

Paul Sajna 22 Oct 16, 2022
A simple mass search & replace tool

sr A simple mass search & replace tool. To install: $ brew install sr Usage Use the -s <pattern> flag to search for any regex in your entire codebase

Vincent Driessen 13 Nov 25, 2022
Tool for mass import of hosts into Zabbix (and other API functions)

zabbix-tools A CLI tool for interacting with Zabbix API built in Rust. Designed for Zabbix 6.0. Functions added to test API and add hosts manually or

null 1 Apr 21, 2022
Match up block edges and get your center of mass as low as possible. World of Goo meets dominoes!

Excavation Site Alpha Match up block edges and get your center of mass as low as possible. World of Goo meets dominoes! Drag blocks off the conveyor b

petrak@ 2 Oct 12, 2022
command line tools for coprolite research (paleontology and archaeology): estimate the producer's body mass based on coprolite diameter by the use of regression models

OVERVIEW OF COPROSIZE coprosize employs power, exponential and cubic regression models allowing to estimate the producer's body mass based on coprolit

Piotr Bajdek 7 Nov 25, 2022
Tool and framework for securely reading untrusted USB mass storage devices.

usbsas is a free and open source (GPLv3) tool and framework for securely reading untrusted USB mass storage devices. Description Following the concept

CEA IT Security 250 Aug 16, 2023
mass surveillance for block game - mirror

Snowstorm mass surveillance for block game Yet another Minecraft Server Scanner Scan the entire ipv4 address space for Minecraft servers, with dynamic

null 11 Mar 2, 2024
Detect if code is running inside a virtual machine (x86 and x86-64 only).

inside-vm Detect if code is running inside a virtual machine. Only works on x86 and x86-64. How does it work Measure average cpu cycles when calling c

null 34 Oct 3, 2022
Detect whether the current terminal supports rendering hyperlinks

Detects whether the current terminal supports hyperlinks in terminal emulators. It tries to detect and support all known terminals and terminal famili

Kat Marchán 19 Sep 14, 2022
Detect timestamp of all scene changes in video

detect-scene-change detect timestamp of all scene changes in video Usage

soruly 6 Feb 26, 2022
Firecracker takes your HTTP logs and uses them to map your API flows and to detect anomalies in them.

Who is BLST and what do we do? BLST (Business Logic Security Testing) is a startup company that's developing an automatic penetration tester, replacin

BLST 692 Jan 2, 2023
fast rust implementation of online nonnegative matrix factorization as laid out in the paper "detect and track latent factors with online nonnegative matrix factorization"

ONMF status: early work in progress. still figuring this out. code still somewhat messy. api still in flux. fast rust implementation of online nonnega

null 2 Apr 10, 2020
Rust library to detect bots using a user-agent string

Rust library to detect bots using a user-agent string

Bryan Morgan 8 Dec 21, 2022