Skip to content

Commit

Permalink
Merge pull request #13 from Ignalina/readme/setup
Browse files Browse the repository at this point in the history
(#11) Start on setup and requirements for README
  • Loading branch information
wilhelmagren authored Oct 1, 2022
2 parents b0982a8 + daad9ab commit f0974c2
Showing 1 changed file with 64 additions and 8 deletions.
72 changes: 64 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Alloy
![Rust build](https://github.com/Ignalina/alloy/actions/workflows/rust-build.yml/badge.svg)![Rust tests](https://github.com/Ignalina/alloy/actions/workflows/rust-tests.yml/badge.svg)
![Rust build](https://github.com/Ignalina/alloy/actions/workflows/rust-build.yml/badge.svg)
![Rust tests](https://github.com/Ignalina/alloy/actions/workflows/rust-tests.yml/badge.svg)

Go (Arrow buffs)--> Rust
calls with Apache Arrow datatype's as parameter
Expand All @@ -11,21 +12,76 @@ Under early setup at atm reading these as inspiration.
* https://arrow.apache.org/docs/status.html#ipc-format
* https://github.com/alexcrichton/rust-ffi-examples a lot of FFI examples, including go-to-rust

You need Go/Rust and build tools installed. Try
## Setup
If you are on a a debian based Linux system, you can very easily install the tools
needed to install Rust and similar tools, simply do this with the following command.
```
$ sudo apt-get install build-essential
```

**prompt> make build-all**

it currently fails ..help me fix it..
You need the Go and Rust programming languages installed to even attempt at running
any of the code in this repository. If you are on a GNU/Linux based system, you can
run the comamnd `uname -ar` to see your specific OS version and CPU architecture. This
is important to know so that you download the correct Go version. Go (pun intended) to
this page https://go.dev/dl/ and download the correct file for your system. Next go
to the download location and run the following commands (checksum is optional, but a
sustainable practice),
```
$ sha256sum go1.19.1.linux-amd64.tar.gz
...
$ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz
...
$ export GOROOT=/usr/local/go
$ export GOPATH=$HOME/go
$ export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
```
now you can verify that the Go compiler is installed properly by checking its version.
```
$ go version
```

Goals

## V0 Either using C-api or IPC
Next step is to install Rust. Perhaps a bit counter-intuitive, but this is a lot
easier than the Go install. Simply go to this page https://rustup.rs/ and follow the
guide on screen. It will install the Rust toolchain which constitutes of; the Rust
compiler and the Cargo package manager. Or if you just want the command to run the
install, this is it.
```
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
Again you can verify that everything is installed properly by running
```
$ cargo version
```


and in theory, you could now make and run the examples in this repo; but it is
currently failing. We are looking into this.
```
$ make build-all
...
```

## Requirements
- Apache Arrow v9.0.0 https://arrow.apache.org/install/
- ...

## Goals

### V0 Either using C-api or IPC

* Transfer hardcoded array of floats / ints/ strings..
* Transfer schema describing array of arrays datatypes ... (Table!)
* Buildscripts using Docker building GO and possible RUST part

## V0.1
### V0.1

##n Thanks to inspiring GO-Rust repo
### n Thanks to inspiring GO-Rust repo
* https://github.com/mediremi/rust-plus-golang

## License
All code written is to be held under a general MIT-license, please see
[LICENSE](https://github.com/Ignalina/alloy/blob/main/LICENSE) for
specific information.

0 comments on commit f0974c2

Please sign in to comment.