| Crates.io | argos-arpa |
| lib.rs | argos-arpa |
| version | 0.3.4 |
| created_at | 2025-09-02 06:55:03.009706+00 |
| updated_at | 2025-11-03 14:27:05.591595+00 |
| description | A pulsar data archive for the ARGOS project (https://argos-telescope.eu/). |
| homepage | |
| repository | https://github.com/SGullin/arpa |
| max_upload_size | |
| id | 1820706 |
| size | 256,466 |

arpa - a package for pulsar science in ARGOSThis is still under development.
Keeps track of TOAs and related things. This is mostly based off of 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.
Add the library as such:
cargo add argos-arpa
Alternatively, fork either this repo or the 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.
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.
There is a Pipeline struct that you'll want to use. It is expected to change internally, but the interface should remain very similar.
First, you create a PipelineSettings object, e.g.:
let settings = PipelineSettings::from_file("pipeline.toml")
.unwrap_or_else(|_| PipelineSettings::default());
Then you create a Pipeline object with your input data and settings, and call run with an Archivist and a status callback function.
let mut pipeline = Pipeline::setup(
raw_file,
template,
ephemeride,
settings,
);
pipeline.run(
&mut archivist,
|status: Status| log::info!("{status}"),
).await?;
arpa makes frequent use of the log crate, and so it is suggested to use env_logger or similar to debug.
sqlx does so too, so be vary of the sheer amount of debug level logs you may face (e.g. one per query) if you're not selectively setting the level.
If you fork this and want to add more tables, the derive macro might come in handy. The only necessities is that
id: i32; andTable enum.In the future, support will be added for custom tables without forking.
There is a GUI application being developed for internal use, publicly available at https://github.com/SGullin/arpa-gui.
argos-arpa is distributed under the terms of the MIT License.
The ARGOS logo belongs to the ARGOS Consortium.