downstream

downstream provides efficient, constant-space implementations of stream curation algorithms.

https://github.com/mmore500/downstream

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

downstream provides efficient, constant-space implementations of stream curation algorithms.

Basic Info
  • Host: GitHub
  • Owner: mmore500
  • License: mit
  • Language: TeX
  • Default Branch: master
  • Homepage:
  • Size: 9.15 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 3
  • Releases: 1
Created almost 2 years ago · Last pushed 9 months ago
Metadata Files
Readme License Code of conduct Citation

README.md

downstream wordmark

GitHub stars PyPi Crates.io DOI <!-- Documentation Status --> <!-- documentation coverage --> <!-- code coverage status --> <!-- dotos -->

downstream provides efficient, constant-space implementations of stream curation algorithms.

CI Status

CI Cpp CI CSL CI Python CI Rust CI Zig CI

Installation

To install from PyPi with pip, run

python3 -m pip install "downstream[jit]"

A containerized release of downstream is available via https://ghcr.io

bash singularity exec docker://ghcr.io/mmore500/downstream python3 -m downstream --help

Quickstart Guide

https://mmore500.com/downstream/quickstart/

Citing

If downstream contributes to a scientific publication, please cite it as

Yang C., Wagner J., Dolson E., Zaman L., & Moreno M. A. (2025). Downstream: efficient cross-platform algorithms for fixed-capacity stream downsampling. arXiv preprint arXiv:2506.12975. https://doi.org/10.48550/arXiv.2506.12975

bibtex @misc{yang2025downstream, doi={10.48550/arXiv.2506.12975}, url={https://arxiv.org/abs/2506.12975}, title={Downstream: efficient cross-platform algorithms for fixed-capacity stream downsampling}, author={Connor Yang and Joey Wagner and Emily Dolson and Luis Zaman and Matthew Andres Moreno}, year={2025}, eprint={2506.12975}, archivePrefix={arXiv}, primaryClass={cs.DS}, }

And don't forget to leave a star on GitHub!

Credits

This package was created with Cookiecutter and the mmore500/cookiecutter-dishtiny-project project template.

Owner

  • Name: Matthew Andres Moreno
  • Login: mmore500
  • Kind: user
  • Location: East Lansing, MI
  • Company: @devosoft

doctoral student, Computer Science and Engineering at Michigan State University

Citation (CITATION.cff)

cff-version: 1.15.2
title: "Downstream: efficient cross-platform algorithms for fixed-capacity stream downsampling"
message: "If you use this software, please cite it using the metadata below."
type: software
date-released: 2025-02-10
keywords:
  - Python
  - Rust
  - C++
  - Zig
  - CSL
abstract: |
  Due to ongoing accrual over long durations, a defining characteristic of real-world data streams is the requirement for rolling, often real-time, mechanisms to coarsen or summarize stream history.
  One common data structure for this purpose is the ring buffer, which maintains a running downsample comprising most recent stream data.
  In some downsampling scenarios, however, it can instead be necessary to maintain data items spanning the entirety of elapsed stream history.
  Fortunately, approaches generalizing the ring buffer mechanism have been devised to support alternate downsample compositions, while maintaining the ring buffer's update efficiency and optimal use of memory capacity.
  The Downstream library implements algorithms supporting three such downsampling generalizations: (1) "steady," which curates data evenly spaced across the stream history; (2) "stretched," which prioritizes older data; and (3) "tilted," which prioritizes recent data.
  To enable a broad spectrum of applications ranging from embedded devices to high-performance computing nodes and AI/ML hardware accelerators, Downstream supports multiple programming languages, including C++, Rust, Python, Zig, and the Cerebras Software Language.
  For seamless interoperation, the library incorporates distribution through multiple packaging frameworks, extensive cross-implementation testing, and cross-implementation documentation.
authors:
  - given-names: Connor
    family-names: Yang
    orcid: https://orcid.org/0009-0004-1240-2362
    affiliation: "Undergraduate Research Opportunities Program; University of Michigan, Ann Arbor, United States"
  - given-names: Joey
    family-names: Wagner
    orcid: https://orcid.org/0009-0000-6141-976X
    affiliation: "Professorial Assistantship Program; Michigan State University, East Lansing, United States"
  - given-names: Emily
    family-names: Dolson
    orcid: https://orcid.org/0000-0001-8616-4898
    affiliation: "Department of Computer Science and Engineering; Program in Ecology, Evolution, and Behavior; Michigan State University, East Lansing, United States"
  - given-names: Luis
    family-names: Zaman
    orcid: https://orcid.org/0000-0001-6838-7385
    affiliation: "Department of Ecology and Evolutionary Biology; Center for the Study of Complex Systems; Michigan Institute for Data and AI in Society"
  - given-names: Matthew Andres
    family-names: Moreno
    orcid: https://orcid.org/0000-0003-4726-4479
    affiliation: "Department of Ecology and Evolutionary Biology; Center for the Study of Complex Systems; Michigan Institute for Data and AI in Society; University of Michigan, Ann Arbor, United States"
identifiers:
  - type: doi
    value: 10.48550/arXiv.2506.12975
  - type: url
    value: https://arxiv.org/abs/2506.12975

GitHub Events

Total
  • Issues event: 33
  • Delete event: 70
  • Member event: 2
  • Issue comment event: 33
  • Push event: 1,089
  • Pull request review event: 135
  • Pull request review comment event: 123
  • Pull request event: 123
  • Fork event: 1
  • Create event: 125
Last Year
  • Issues event: 33
  • Delete event: 70
  • Member event: 2
  • Issue comment event: 33
  • Push event: 1,089
  • Pull request review event: 135
  • Pull request review comment event: 123
  • Pull request event: 123
  • Fork event: 1
  • Create event: 125

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 678
  • Total Committers: 3
  • Avg Commits per committer: 226.0
  • Development Distribution Score (DDS): 0.326
Past Year
  • Commits: 282
  • Committers: 3
  • Avg Commits per committer: 94.0
  • Development Distribution Score (DDS): 0.415
Top Committers
Name Email Commits
Matthew Andres Moreno m****g@g****m 457
Connor Yang c****5@g****m 165
github-actions[bot] g****] 56

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 21
  • Total pull requests: 105
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 1.38
  • Average comments per pull request: 0.14
  • Merged pull requests: 92
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 21
  • Pull requests: 105
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 1.38
  • Average comments per pull request: 0.14
  • Merged pull requests: 92
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mmore500 (18)
  • connoryang1 (3)
  • joeymsu (1)
Pull Request Authors
  • mmore500 (104)
  • vivaansinghvi07 (13)
  • connoryang1 (6)
Top Labels
Issue Labels
Pull Request Labels
codex (5)

Packages

  • Total packages: 2
  • Total downloads:
    • cargo 7,912 total
    • pypi 5,755 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 60
  • Total maintainers: 2
pypi.org: downstream

downstream provides efficient, constant-space algorithms for stream curation

  • Versions: 45
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 5,755 Last month
Rankings
Dependent packages count: 9.7%
Average: 36.7%
Dependent repos count: 63.7%
Maintainers (1)
Last synced: 6 months ago
crates.io: downstream

downstream provides efficient, constant-space implementations of stream curation algorithms

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 7,912 Total
Rankings
Dependent repos count: 23.6%
Dependent packages count: 31.3%
Average: 50.1%
Downloads: 95.4%
Maintainers (1)
Last synced: 6 months ago