Hi All,

This time last year there was a brief discussion on the usage of unsafe in Rust 
(a user on github raised the issue and I created the JIRA). [1]

So far we mostly avoid unsafe in the public API's.  The thinking here is that 
Arrow is a "development platform", i.e. lower level that most libraries, and 
library builders will want to avoid any performance hit of bounds checking, etc.

This is not typical in the Rust community where unsafe is a clear signal that 
care is needed.  Although it might clutter the API a little more I would be in 
favor of having safe and unsafe variants of methods as needed.  For instance, 
"value" for array access would be changed to "value" and "value_unchecked" 
where the latter is unsafe and does not perform bounds checks.

We don't have a huge number of libraries building on top of Arrow in Rust at 
the moment so it seems like a good time, before 1.0, to decide on this to avoid 
breaking changes to the public API in post 1.0.

Thoughts?

Paddy

[1] https://issues.apache.org/jira/browse/ARROW-3776?filter=12343557

Reply via email to