BrainFlow is a library intended to obtain, parse and analyze EEG, EMG, ECG, and other kinds of data from biosensors.
It provides a uniform SDK to work with biosensors with a primary focus on neurointerfaces, all features available for free and distributed under MIT license.
#### Advantages of BrainFlow:
* powerful API with many features to simplify development
* Straightforward API for data acquisition
* Powerful API for signal filtering, denoising, downsampling...
* Development tools like Synthetic board, Streaming board, logging API
* easy to use
* BrainFlow has many bindings, you can choose programming language you like
* All programming languages provide the same API, so it's simple to switch
* API is uniform for all boards, it makes applications on top of BrainFlow almost board agnostic
* easy to support and extend
* Code to read data and to perform signal processing is implemented only once in C/C++, bindings just call C/C++ methods
* Powerful CI/CD system which runs integrations tests for each commit automatically using BrainFlow's Emulator
* Simplified process to add new boards and methods
## Resources
* [***BrainFlow Docs, Dev and User guides and other information***](https://brainflow.readthedocs.io)
* [***BrainFlow's slack workspace***](https://openbraintalk.slack.com/)***, use this*** [***link to join***](https://communityinviter.com/apps/openbraintalk/join-brainflow-on-slack)
* [***For BrainFlow Developers***](https://brainflow.readthedocs.io/en/master/BrainFlowDev.html)
## Contribution guidelines
If you want to contribute to BrainFlow, be sure to review the [contribution guidelines](https://brainflow.readthedocs.io/en/stable/BrainFlowDev.html). This project adheres to [BrainFlow's code of conduct](https://github.com/brainflow-dev/brainflow/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
We use [GitHub issues](https://github.com/brainflow-dev/brainflow/issues) for tracking requests and bugs, please use BrainFlow's slack for general discussions.
The BrainFlow project strives to abide by generally accepted best practices in open-source software development.
## Build Status
| Build Type | Status |
|:---------------------------: |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| Windows Tests | [](https://github.com/brainflow-dev/brainflow/actions/workflows/run_windows.yml) |
| Unix(Linux and MacOS) Tests | [](https://github.com/brainflow-dev/brainflow/actions/workflows/run_unix.yml) |
| Android Tests | [](https://github.com/brainflow-dev/brainflow/actions/workflows/run_android.yml) |
| Alpine Tests | [](https://github.com/brainflow-dev/brainflow/actions/workflows/run_alpine.yml) |
| Valgrind Tests | [](https://github.com/brainflow-dev/brainflow/actions/workflows/valgrind.yml) |
| CppCheck | [](https://github.com/brainflow-dev/brainflow/actions/workflows/cppcheck.yml) |
| Clang-Format | [](https://github.com/brainflow-dev/brainflow/actions/workflows/clang_format.yml) |
## Brainflow Bindings
We support bindings for:
* [Python](./python_package)
* [Java](./java_package/brainflow/)
* [R](./r_package/)
* [C++](./cpp_package/)
* [C#](./csharp_package/brainflow/)
* [Matlab](./matlab_package/brainflow)
* [Julia](./julia_package/brainflow)
## Partners and Sponsors
## License:
[MIT](https://github.com/brainflow-dev/brainflow/blob/master/LICENSE)