aos 1.0.0Latest published 1d ago
MODULE.bazel
bazel_dep(name = "aos", version = "1.0.0")
Dependencies
single_version_override(
    module_name = "rules_python",
    patch_strip = 1,
    patches = [
        "//third_party:rules_python/0002-Allow-users-to-inject-extra-deps.patch",
        "//third_party:rules_python/0003-Add-sysroot-dep.patch",
    ],
    version = "1.5.3",
)
single_version_override(
    module_name = "glib",
    patch_strip = 1,
    patches = [
        "third_party/glib/0001-Add-sysroot-select.patch",
    ],
    version = "2.82.2.bcr.10",
)
# protobuf's crate extension has no lockfile, which rules_rust 0.71 rejects in a
# non-root module.  Fixed in protobuf 37.
single_version_override(
    module_name = "protobuf",
    patch_strip = 1,
    patches = ["//third_party:protobuf/0001-Make-the-crate-extension-a-dev-dependency.patch"],
    version = "35.1",
)
# The version pin has to exist because other modules ask for abseil versions
# that are not in BCR-compatible ranges (tcmalloc wants 20250814.0), and
# forcing one version is what makes the graph resolve. The patches below are
# root-only by design -- an override is ignored for anyone but the root
# module: 0001/0002 are weak-symbol hooks with
# safe defaults, so a dependent that resolves plain BCR abseil still links and
# runs -- it just keeps realtime priority while a fatal message formats.
single_version_override(
    module_name = "abseil-cpp",
    patch_strip = 1,
    patches = [
        "//third_party/abseil:0001-Add-hooks-for-using-abseil-with-AOS.patch",
        "//third_party/abseil:0002-Suppress-the-stack-trace-on-SIGABRT.patch",
        "//third_party/abseil:0005-Expose-google_benchmark-and-downgrade-dependencies.patch",
    ],
    version = "20260526.0",
)
single_version_override(
    module_name = "googletest",
    patch_strip = 1,
    patches = ["third_party/googletest/0001-Expose-rules_python-dependency.patch"],
    version = "1.17.0.bcr.2",
)
single_version_override(
    module_name = "snappy",
    patch_strip = 1,
    patches = ["third_party/snappy/0001-Zero-the-tag-scratch-buffer-for-MemorySanitizer.patch"],
)
single_version_override(
    module_name = "xz",
    patch_strip = 1,
    patches = [
        "third_party/xz/0001-Add-sysroot-select.patch",
        "third_party/xz/0002-Add-ARMv7-support.patch",
    ],
    version = "5.4.5.bcr.7",
)
single_version_override(
    module_name = "rules_rust_bindgen",
    patch_strip = 1,
    patches = [
        "//third_party:rules_rust_bindgen-0.71.3.patch",
    ],
    version = "0.71.3",
)
# The websocketpp patch is required for the ROBORIO build (arm-frc-linux-gnueabi-gcc)
# which fails to compile cpp/foxglove-websocket/src/server_factory.cpp because of
# syntax errors in basic.hpp:
# error: expected ')' before 'h'
#   basic<concurrency,names>(channel_type_hint::value h =
# Nothing downstream needs the patch.
single_version_override(
    module_name = "websocketpp",
    patch_strip = 1,
    patches = ["third_party/websocketpp/websocketpp.patch"],
)
README

Build Status

Build status

Introduction

Welcome to AOS's main code repository. It contains two things:

  • AOS ("Autonomous Operating System") is an open source event-loop based framework for realtime robotic systems. You can learn more about it here.
  • A collection of software useful for robots, particularly the kind used in the First Robotics Competition.

Pleaes note: AOS moved here fairly recently and we are still cleaning up a few things, especially documentation.

Contributing

All development of AOS is done on our gerrit instance at https://realtimeroboticsgroup.org/gerrit with github being a read-only mirror. We are happy to add external contributors. If you are interested, reach out to Austin Schuh and he will help you get access. In case of disputes over if a patch should be taken or not, Austin has final say.

Submissions must be made under the terms of the following Developer Certificate of Origin.

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
        have the right to submit it under the open source license
        indicated in the file; or

    (b) The contribution is based upon previous work that, to the best
        of my knowledge, is covered under an appropriate open source
        license and I have the right under that license to submit that
        work with modifications, whether created in whole or in part
        by me, under the same open source license (unless I am
        permitted to submit under a different license), as indicated
        in the file; or

    (c) The contribution was provided directly to me by some other
        person who certified (a), (b) or (c) and I have not modified
        it.

    (d) I understand and agree that this project and the contribution
        are public and that a record of the contribution (including all
        personal information I submit with it, including my sign-off) is
        maintained indefinitely and may be redistributed consistent with
        this project or the open source license(s) involved.

To do this, add the following to your commit message. Gerrit will enforce that all commits have been signed off.

Signed-off-by: Random J Developer <random@developer.example.org>

Git has support for adding Signed-off-by lines by using git commit -s, or you can setup a git commit hook to automatically sign off your commits. Stack Overflow has instructions for how to do this if you are interested.

About

No description provided.

@RealtimeRoboticsGroup/aos@RealtimeRoboticsGroup
Homepage
40stars
Thursday, November 12, 2026 (1 day ago)
@AustinSchuh#11725 aos@1.0.0 (#11725)

Languages

C++42.3%
C33.3%
Starlark18.1%
Python3.6%
TypeScript0.9%
Rust0.6%
GLSL0.5%
Shell0.3%
Makefile0.2%
TeX0.2%

Maintainers

@AustinSchuh

Compatibility

Versions

1.0.02026-11-12