No version for distro humble showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro jazzy showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro kilted showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version rolling
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro ardent showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro bouncy showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro crystal showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro eloquent showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro dashing showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro galactic showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro foxy showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro iron showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro lunar showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro jade showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro indigo showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro hydro showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro kinetic showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro melodic showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.

No version for distro noetic showing lyrical. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/dskkato/memfd_buffer_backend.git
VCS Type git
VCS Version lyrical
Last Updated 2026-09-27
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

shared_buffer_backend

shared_buffer_backend is a rosidl::Buffer backend that shares memory between compatible ROS 2 endpoints on Linux and Windows. Linux uses anonymous memfd allocations; Windows uses session-local named file mappings.

See the user guide for an illustrated overview, setup steps, and C++ / Python examples. The guide is a standalone site ready to be served with GitHub Pages directly from the docs/ directory.

Attribution

This repository is developed and maintained outside the Open Source Robotics Foundation (OSRF). Its implementation was developed with reference to the OSRF rosidl_buffer_backends implementation.

Packages

  • shared_buffer: shared-memory allocation, pooling, handles, Linux FD brokering, and Windows named-mapping import.
  • shared_buffer_backend_py: Python zero-copy bindings for the shared-memory backend (installs the shared_buffer Python module).
  • shared_buffer_backend: rosidl buffer backend plugin.
  • shared_buffer_backend_msgs: descriptor message used for inter-process import.

Python zero-copy access

The shared_buffer_backend_py package exposes Python buffer-protocol access through the shared_buffer Python module. NumPy is optional and consumes the standard memoryview without copying:

import numpy as np
from shared_buffer import allocate_buffer, read_buffer, write_buffer

buffer = allocate_buffer(1024)
with write_buffer(buffer) as view:
    array = np.frombuffer(view, dtype=np.uint8)
    array[:] = 7
    del array  # Derived views must be released before leaving the scope.

message.data = buffer

view = read_buffer(received_message.data)
array = np.frombuffer(view, dtype=np.uint8)
process(array)

Read views are read-only. Their read lease is retained by derived buffer objects and released automatically when the last view is destroyed. Write views are exclusive and are finalized when the scope closes; a derived write view must not escape the scope, and closing raises BufferError while one remains alive.

Benchmark

The benchmark package, benchmark results, report, and figures are maintained in the separate shared_buffer_backend_benchmark repository.