5 releases
Uses new Rust 2024
| new 0.3.4 | Nov 3, 2025 |
|---|---|
| 0.3.3 | Oct 15, 2025 |
| 0.3.2 | Sep 12, 2025 |
| 0.3.1 | Sep 2, 2025 |
| 0.3.0 | Sep 2, 2025 |
#78 in Science
173 downloads per month
125KB
2.5K
SLoC

arpa - a package for pulsar science in ARGOS
This 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.
Setup
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.
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
Running the pipeline
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?;
Debugging
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.
New tables
If you fork this and want to add more tables, the derive macro might come in handy. The only necessities is that
- the struct contains a field
id: i32; and - you add a new entry in the
Tableenum.
In the future, support will be added for custom tables without forking.
GUI
There is a GUI application being 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.
The ARGOS logo belongs to the ARGOS Consortium.
Dependencies
~37–52MB
~818K SLoC