Skip to content

Discussion for creating ArrayFire Rust API #1

Description

@pavanky

Rust has hit 1.0. It would be interesting to see if we can add a wrapper to Rust.

Activity

  1. jramapuram commented on May 18, 2015

    @jramapuram
    Member

    Since arrayfire has a C API it should be possible to use FFI (https://doc.rust-lang.org/book/ffi.html) to pull in these functions. If so, then it should merely be writing up the new interface definitions. Thoughts?

  2. umar456 commented on May 22, 2015

    @umar456
    Member

    It would take a good bit of effort to create a native experience with the rust language. If you look at the src/api/cpp directory, the C++ interface is made of 3933 lines of pretty dense code. I come from a C++ background so I am comfortable with our C++ API but it might be different for a idiomatic Rust interface.

    Rust looks like a fantastic language and I would love to see some progress in this project but I need to do more research on the language to feel comfortable contributing. Perhaps someone who is familiar with the Rust language can create a mockup program similar to the ones located in the getting_started folder in idiomatic Rust. We can then start integrating these features into this repository.

  3. jramapuram commented on May 22, 2015

    @jramapuram
    Member

    I can write up some examples. I'm a c++11/c99 person myself, and it feels weird at first, but there are good reasons for the idioms in rust.

  4. jramapuram commented on May 22, 2015

    @jramapuram
    Member

    Also, if you guys are able to do the c refactor as mentioned in the other issue it will be the first easy integration with the GPU via RUST! There have been some tries I believe: http://blog.theincredibleholk.org/blog/2012/12/05/compiling-rust-for-gpus/ but that is more so to get rust natively on there which I don't think is really necessary.

  5. pavanky commented on Jul 7, 2015

    @pavanky
    MemberAuthor

    Closing this issue as it looks like we are making good progress in this regard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions