Skip to main content

A high-performance Rust-powered alternative to TQDM.

Project description

Vibe Loader

New!

Rust

Have the visuals of Loading(), with the speed of TQDM

Vibe Demo

Vibe Loader is a lightweight alternative to TQDM, written in less than 250 lines of code. It uses an event-based function called update to refresh values dynamically.

Features

  • 100+ Styles: Passed directly into the Loading object.
  • Zero Dependencies: No foreign packages required.
  • MARGIN Support: Optimized for small terminals to prevent layout breaking.
  • Dynamic Resizing: Automatically adjusts to terminal width.
  • Stream Support: Compatible with request streams.
  • Context Manager: Supports with statements for easy lifecycle management.
  • Developer Friendly: All variables are public and changeable, plus support for custom styles.

Performance

The new minload is faster than tqdm.

Library Total Time Iterations/sec Speed Factor
MinLoad 0.0989s 5,063,945 it/s 1.45x Faster
tqdm 0.1436s 4,320,390 it/s 1.00x (Baseline)
RustBar (Rust) 0.1480s 3,490,749 it/s 0.97x
Loading (Legacy) 0.5197s 962,297 it/s 0.28x

MinLoad Speed

Test Conditions: Measured over 500,000 iterations on a standard Python loop.

MinLoad() is better than Loading() in speed, Loading() is better for aesthetics. RustBar() (Rust) gives you the best of both worlds: high performance with rich visuals.


Installation from PyPi.

pip install vibe-loadbar

Installation from Github. (For latest updates.)

Note: Cutting Edge updates might have errors or be unstable.

pip install git+https://github.com/domm-hub/vibe-loadbar

Example Usage for Loading:

from vibe_load import Loading, SmoothStyle
from vibe_load.themes import garden
import time

for i in Loading(range(1000), style=SmoothStyle(), theme=garden):
    time.sleep(0.01)

with Loading(range(1000), style=SmoothStyle()) as pbar:
    for i in pbar:
        time.sleep(0.01)
    
#These loops should take ~10 seconds

Example Usage for MinLoad:

from vibe_load import MinLoad
import time

for i in MinLoad(range(1000)):
    time.sleep(0.01)

with MinLoad(range(1000)) as pbar:
    for i in pbar:
        time.sleep(0.01)

Links

Check out the repository here: vibe-loadbar on GitHub

PyPi Module link: vibe-loadbar on PyPI

Built with ❤️ by Adam Hany. Part of the Vibe Suite.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vibe_loadbar-1.0.0.tar.gz (186.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibe_loadbar-1.0.0-cp312-cp312-macosx_11_0_arm64.whl (894.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file vibe_loadbar-1.0.0.tar.gz.

File metadata

  • Download URL: vibe_loadbar-1.0.0.tar.gz
  • Upload date:
  • Size: 186.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for vibe_loadbar-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ade8bce532fa44f4360b7a169e6a8645a6697b68ccce7b542e49c1d833aa4f2c
MD5 5952560a4e17b42f957b55fab0d59e61
BLAKE2b-256 02bd3206862066f04a00a2ec190462ff1118cc62388fdf1b546f5fd815f895d7

See more details on using hashes here.

File details

Details for the file vibe_loadbar-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vibe_loadbar-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bd0d937cb04c76637d1c853ab9ba9375fba4f418f146076a2297cbbf568e192
MD5 bd58effd4f3ee704e4c119d82ca19a65
BLAKE2b-256 3359790e5144f762abc439679f5ef37242e4814cb85b2672c1174262f9715327

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page