
# `arpa` - a package for pulsar science in ARGOS
[](#license)
[](https://crates.io/crates/argos-arpa)
[](https://github.com/SGullin/arpa)
[](https://docs.rs/argos-arpa/latest/)
*This is still under development.*
Keeps track of TOAs and related things. This is mostly based off of [TOASTER](https://github.com/plazar/TOASTER) by Patrick Lazarus.
Most informations are split into data and metadata, e.g. `toa` and `toa_meta`. Parfiles and raw files are kept as files somewhere, and so only metadata is put in the DB.
## Setup
Add the library as such:
```
cargo add argos-arpa
```
Alternatively, fork either this repo or the [GUI](#gui).
To get started, you need to have a folder of `sql` files creating the tables you reference in the rust code, and a config `.toml` file. Both of their paths need to be given to `Archivist`'s constructor.
### SQL
This crate uses PostgreSQL, which means that you need to have such a DB to connect to if you want to use `arpa`. For testing on MacOS, there is e.g. https://postgresapp.com.
## Usage
### Debugging
`arpa` makes frequent use of the [`log` crate](https://crates.io/crates/log), and so it is suggested to use [`env_logger`](https://crates.io/crates/env_logger) or similar to debug.
### New tables
If you fork this and want to add more tables, the [derive macro](https://github.com/SGullin/arpa-item-macro) might come in handy. The only necessities is that
1) the struct contains a field `id: i32`; and
2) you add a new entry in the `Table` enum.
In the future, support will be added for custom tables without forking.
## GUI
There is a GUI application developed for internal use, publicly available at https://github.com/SGullin/arpa-gui.
# License
`argos-arpa` is distributed under the terms of the [MIT License](LICENSE-MIT).
The ARGOS logo belongs to the ARGOS Consortium.
## Changelog
### 0.3.2
-
### 0.3.1
- Removed complicating use of config module.
### 0.3.0
- Prepared as library.