A Swift library that adds customizable progress bars to loops and sequences in terminal applications.
Progress.swift is a Swift library that adds visual progress bars to loops and sequences in terminal applications. It solves the problem of opaque long-running operations by providing real-time progress feedback with minimal code changes. Developers can wrap any sequence with Progress to automatically get beautiful, customizable progress indicators.
Swift developers building command-line tools or terminal applications who need to provide progress feedback for iterative operations. Particularly useful for developers working with data processing, file operations, or any long-running loops.
Progress.swift offers a dead-simple API that requires minimal code changes while providing highly customizable progress visualization. Unlike basic print statements, it gives professional-looking progress bars with time estimates and percentages, all with native Swift integration and support for all collection types.
:hourglass: Add beautiful progress bars to your loops.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Simply wrap any SequenceType with Progress to instantly add progress bars, as demonstrated with examples like `for i in Progress(1...9)`.
Compose progress bars using modular ProgressElementType components such as ProgressBarLine and ProgressPercent, allowing tailored output via configuration.
Designed specifically for terminal environments with proper cursor movement support, ensuring smooth updates without console clutter.
Works with all CollectionType conforming types including arrays, dictionaries, and ranges, making it versatile for various data structures.
The library relies on cursor movements not supported in Xcode's console, limiting its usefulness during development in Xcode, as admitted in the README.
Focused solely on command-line applications, so it cannot be used for GUI progress indicators in iOS or macOS apps, restricting its applicability.
Adds an external library dependency, which might be cumbersome for projects aiming for minimalism or those avoiding third-party packages.