https://github.com/diamondlightsource/blueapi
https://github.com/diamondlightsource/blueapi
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/diamondlightsource/blueapi
- Owner: DiamondLightSource
- License: apache-2.0
- Created: 2022-03-18T09:25:21.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-27T15:29:05.000Z (10 months ago)
- Last Synced: 2025-02-27T22:05:35.020Z (10 months ago)
- Language: Python
- Size: 166 MB
- Stars: 6
- Watchers: 6
- Forks: 7
- Open Issues: 153
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://github.com/DiamondLightSource/blueapi/actions/workflows/ci.yml)
[](https://codecov.io/gh/DiamondLightSource/blueapi)
[](https://pypi.org/project/blueapi)
[](https://www.apache.org/licenses/LICENSE-2.0)
# blueapi
Lightweight bluesky-as-a-service wrapper application. Also usable as a library.
Source |
:---: | :---:
PyPI | `pip install blueapi`
Docker | `docker run ghcr.io/diamondlightsource/blueapi:latest`
Documentation |
Releases |
This module wraps [bluesky](https://blueskyproject.io/bluesky) plans and devices
inside a server and exposes endpoints to send commands/receive data. Useful for
installation at labs where multiple people may control equipment, possibly from
remote locations.
The main premise of blueapi is to minimize the boilerplate required to get plans
and devices up and running by generating an API for your lab out of
type-annotated plans. For example, take the following plan:
```python
import bluesky.plans as bp
from blueapi.core import MsgGenerator
def my_plan(foo: str, bar: int) -> MsgGenerator:
yield from bp.scan(...)
```
Blueapi's job is to detect this plan and automatically add it to the lab's API
so it can be invoked easily with a few REST calls.
See https://diamondlightsource.github.io/blueapi for more detailed documentation.
[concept]: https://raw.githubusercontent.com/DiamondLightSource/blueapi/main/docs/images/blueapi.png