The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

throttle - Bandwidth limiting pipe

VERSION

This document describes version 0.003 of throttle (from Perl distribution App-throttle), released on 2019-07-22.

SYNOPSIS

DESCRIPTION

This utility copies standard input to standard output while limiting bandwidth to the specified maximum. Bandwidth limiting is done by calling nanosleep() in between copying.

Keywords: throttle, throughput, bandwidth, speed limit, stdin, stdout, standard input, standard output, pipe.

For higher throughput speeds, the overhead of this Perl-based utility will become more significant. you might want to try C-based implementations mentioned in "SEE ALSO".

OPTIONS

--help, -h, -?

--version, -v

--block-size, -b

The default is to use at least 4096 (4KB) or its multiples to keep the sleeping period close to 1 second (unless speed limit is too low, in which case block will also be reduced accordingly).

--speed, -s

Default: undefined (unlimited).

Accepted units:

  • bps (bits per second)

  • Bps, B/s (bytes per second)

  • kbps, kbit (kilobits per second)

  • KB/s (kilobytes per second)

  • Mbps, Mbit (megabits per second)

  • MB/s (megabytes per second)

Examples: 19200 bps, 1.5Mbit, 0.5MB/s.

ENVIRONMENT

DEBUG

Bool. If set will output more debug messages to stderr.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/App-throttle.

SOURCE

Source repository is at https://github.com/perlancar/perl-App-throttle.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=App-throttle

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

throttle, http://www.pro-toolz.net/data/man/1/throttle.html, bandwidth limiting pipe. The closest in purpose/form with our Perl-based throttle. At the time of this writing, no Debian/Ubuntu package is available. Differences: our Perl-based throttle allows specifying bandwidth limit in a more human-friendly way (-s 1Mbps instead of -m 1).

cpipe, http://cpipe.berlios.de, a CLI to copy stdin to stdout while counting bytes and reporting progress to stderr. Can also be instructed to limit throughput, although the minimum speed is 1KB/s and minimum buffer size is 1KB. At the time of this writing, Debian/Ubuntu package is available.

pv (pipe viewer), http://www.ivarch.com/programs/pv.shtml, monitor the progress of data through a pipe. Like cpipe, except it doesn't have an option to limit speed. At the time of this writing, Debian/Ubuntu package is available.

socat, http://www.dest-unreach.org/socat, a versatile relay program. Its ispeed and ospeed options cannot be applied to stdin/stdout though, it seems.

throttle-cli, https://github.com/edi9999/throttle-cli, an NPM package. Line-based.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2019, 2018 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.