{"id":13673471,"url":"https://github.com/signalo/signalo","last_synced_at":"2025-04-28T09:30:41.517Z","repository":{"id":47083489,"uuid":"131839126","full_name":"signalo/signalo","owner":"signalo","description":"A DSP toolbox with focus on embedded environments written in Rust.","archived":false,"fork":false,"pushed_at":"2021-09-14T10:36:44.000Z","size":481,"stargazers_count":113,"open_issues_count":0,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-10-20T00:48:45.886Z","etag":null,"topics":["control-systems","digital-signal-processing","dsp","embedded","real-time","toolbox"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/signalo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-02T11:08:25.000Z","updated_at":"2024-08-14T01:37:53.000Z","dependencies_parsed_at":"2022-09-26T20:31:54.648Z","dependency_job_id":null,"html_url":"https://github.com/signalo/signalo","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signalo%2Fsignalo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signalo%2Fsignalo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signalo%2Fsignalo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/signalo%2Fsignalo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/signalo","download_url":"https://codeload.github.com/signalo/signalo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251284868,"owners_count":21564684,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["control-systems","digital-signal-processing","dsp","embedded","real-time","toolbox"],"created_at":"2024-08-02T10:00:47.452Z","updated_at":"2025-04-28T09:30:39.052Z","avatar_url":"https://github.com/signalo.png","language":"Rust","funding_links":[],"categories":["Signal processing"],"sub_categories":[],"readme":"![jumbotron](./jumbotron.png)\n\n# signalo\n\n## Synopsis\n\nA DSP toolbox with focus on embedded environments.\n\nSignalo provides the **basic building-blocks** for **low-level real-time filtering pipelines**,  \nbased on zero-cost, zero-allocation abstractions, which can be **assembled via composition**.\n\n## About\n\nSignalo basically consists of four basic [traits](./crates/traits) and implementations thereof:\n\n- [`Source\u003cT\u003e`](./crates/sources): `() -\u003e T`\n- [`Filter\u003cT\u003e`](./crates/filters): `T -\u003e U`\n- [`Sink\u003cT\u003e`](./crates/sinks): `T -\u003e ()`\n- `Finalize`: `() -\u003e U`\n\nRoughly signalo's traits are equivalent in semantics to the following stdlib APIs:\n\n- `Source\u003c…\u003e` ≈ `core::iter::Iterator\u003c…\u003e`\n- `Filter\u003c…\u003e` ≈ `core::iter::Map\u003c…\u003e`\n- `Sink\u003c…\u003e + Finalize` ≈ `Iterator::fold(…)`\n- `Filter\u003c…\u003e + Finalize` ≈ `core::iter::Scan\u003c…\u003e`\n\nTypes implementing `Finalize` usually also implement either `Filter\u003cT\u003e` or `Sink\u003cT\u003e`.\n\nSignalo provides the **basic building-blocks** for **low-level real-time filtering pipelines**,  \nwhich can be **assembled via composition** either manually or through the use of [pipes](./crates/pipes).\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/signalo/signalo/tags).\n\n## License\n\nThis project is licensed under the [**MPL-2.0**](https://www.tldrlegal.com/l/mpl-2.0) – see the [LICENSE.md](LICENSE.md) file for details.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](../CONTRIBUTING.md) for details on our [code of conduct](https://www.rust-lang.org/conduct.html), and the process for submitting pull requests to us.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you to the licensor shall be under the terms and conditions of this license, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with licensor regarding such contributions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsignalo%2Fsignalo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsignalo%2Fsignalo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsignalo%2Fsignalo/lists"}