Skip to content

Add a feature to allow creating Buffers from Vec with custom allocators (allocator_api) #3960

@jhorstmann

Description

@jhorstmann

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

in #3920 and #3917 support was added to to create buffers from standard Rust vectors. The currently instable allocator_api feature extends Vec to support custom allocators, using functions such as new_in. In our product we are using such custom allocators to track the memory usage of individual queries. I'd like to add a similarly named feature to arrow-rs which would generalize the Buffer::from_vec and MutableBuffer::from_vec functions.

Describe the solution you'd like

  • Add a feature named allocator-api to arrow-buffer
  • If that feature is active, a different impl of from_vec would be enabled (via cfg attribute), which has a generic parameter for the allocator
  • Deallocation::Standard would additionally store the allocator (note the default Global allocator is zero-sized)
  • The feature would require a nightly rust compiler, just as the feature of the standard library

Describe alternatives you've considered

Something similar can be achieved using Buffer::from_custom_allocation but requires unsafe and dealing with pointers.

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementAny new improvement worthy of a entry in the changelog

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions