Skip to content

Latest commit

 

History

History
46 lines (33 loc) · 2.14 KB

README.md

File metadata and controls

46 lines (33 loc) · 2.14 KB

CI Coverage PyPI License

blueapi

Lightweight bluesky-as-a-service wrapper application. Also usable as a library.

Source https://github.com/DiamondLightSource/blueapi
PyPI pip install blueapi
Docker docker run ghcr.io/diamondlightsource/blueapi:latest
Documentation https://diamondlightsource.github.io/blueapi
Releases https://github.com/DiamondLightSource/blueapi/releases

This module wraps 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.

concept

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:

    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.