{"id":28710793,"url":"https://github.com/arm-software/cmsis-stream","last_synced_at":"2025-06-14T21:08:16.459Z","repository":{"id":163946303,"uuid":"638996206","full_name":"ARM-software/CMSIS-Stream","owner":"ARM-software","description":"CMSIS-Stream software component","archived":false,"fork":false,"pushed_at":"2025-06-12T07:04:27.000Z","size":9118,"stargazers_count":25,"open_issues_count":1,"forks_count":3,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-06-12T07:16:26.533Z","etag":null,"topics":["arm","cortex-m","dataflow","dsp","embedded","ml","streaming"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ARM-software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-05-10T14:36:34.000Z","updated_at":"2025-06-12T07:02:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"fdd67642-0bb5-411a-9c56-69a85b685d7e","html_url":"https://github.com/ARM-software/CMSIS-Stream","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/ARM-software/CMSIS-Stream","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2FCMSIS-Stream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2FCMSIS-Stream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2FCMSIS-Stream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2FCMSIS-Stream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ARM-software","download_url":"https://codeload.github.com/ARM-software/CMSIS-Stream/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2FCMSIS-Stream/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259884525,"owners_count":22926446,"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":["arm","cortex-m","dataflow","dsp","embedded","ml","streaming"],"created_at":"2025-06-14T21:08:15.786Z","updated_at":"2025-06-14T21:08:16.449Z","avatar_url":"https://github.com/ARM-software.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CMSIS-Stream\n\nCMSIS-Stream is a Python package and small set of C++ headers that can be used on embedded devices to process streams of samples with :\n\n* low memory usage\n* minimal overhead\n* deterministic scheduling\n* modular design\n* graphical representation\n\nCMSIS-Stream makes it easier to build streaming solutions by connecting components into a graph and computing a scheduling of this graph at **build time** with several memory optimizations.\n\nStream of samples are processed by this graph as illustrated on the following animation:\n\n![SDF_doc](Documentation/assets/SDF_doc.gif)\n\nPython is used to:\n\n* Describe the graph\n* Generate a **static scheduling** of this graph that is computed **at build time** with several memory optimizations. \n* Generate the code for this scheduler as a simple C++ file (with a C API).\n  * The scheduler can be run on bare metal devices. There is no dependencies to any RTOS. The scheduler is a sequence of function calls\n\n* Generate a graphical representation of the graph\n\nC++ is only used for strong types and static typing (template). The only part of the C++ library that is used is the memory allocator to create the objects.\n\n## License Terms\n\nCMSIS-Stream is licensed under [Apache License 2.0](LICENSE).\n\n## Table of contents\n\n1. ### How to get started\n\n   1. [Simple graph creation example](Examples/simple/README.md)\n\n2. ### How to write the Python script and the C++ wrappers\n\n   1. [How to describe the graph in Python](Documentation/WritePython.md)\n   2. [How to write the C++ wrappers to use your functions in the graph](Documentation/WriteCPP.md)\n   3. [DSP Nodes for working with CMSIS-DSP](Examples/simpledsp/README.md)\n   4. [Details about the generated C++ scheduler](Examples/example1/README.md)\n\n3. ### [Examples](Examples/README.md)\n\n4. ### API Details\n\n   1. ### [Python API for creating a graph and its scheduling](Documentation/PythonAPI.md)\n\n   2. ### [C++ default nodes for C++ wrappers](Documentation/CPPNodes.md)\n\n   3. ### [Python default nodes for Python wrappers](Documentation/PythonNodes.md)\n\n5. ### [Memory optimizations](Documentation/Memory.md)\n\n6. ### [Integration in a system](Documentation/Integration.md)\n\n7. ### Extensions\n\n   1. #### [Cyclo-static scheduling](Documentation/CycloStatic.md)\n\n   2. #### [Dynamic / Asynchronous mode](Documentation/Async.md)\n\n8. ### [Maths principles](Documentation/MATHS.md)\n\n9. ### [FAQs](Documentation/FAQ.md)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farm-software%2Fcmsis-stream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farm-software%2Fcmsis-stream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farm-software%2Fcmsis-stream/lists"}