@ajpm/carta140b1

Test carta-backend in npm

Usage no npm install needed!

<script type="module">
  import ajpmCarta140b1 from 'https://cdn.skypack.dev/@ajpm/carta140b1';
</script>

README

carta-backend

Introduction

This is a test to put a pre-packaged carta-backend in an npm package.

It simply uses the binary-install npm package to download and extract a pre-packaged carta-backend from our Github repository.

At the moment it only supplies a carta-backend (specifically v1.4.0-beta1) for Ubuntu.

binary-install is able to detect the OS and architecture, so later we could easily put packaged carta-backends of different architectures on our Github repository, and binary-install would automatically grab the correct one.

After installing, you can find and execute it from here:

~/node_modules/@ajpm/carta140b1/bin/carta140b1

It accepts all the normal carta-backend flags; -base, -root, -threads etc.

Details

carta140b1 is a simple shell script containing the following lines:

#!/bin/bash

export LD_LIBRARY_PATH=lib:$LD_LIBRARY_PATH
export CASAPATH="../../../$PWD/etc linux"

bin/carta_backend $@

The actual carta_backend exectuable is in a deeper bin folder. It is accompanied by a lib folder containing all the required library files, and an etc folder containing the necessary CASA ephemerides and geodetic data folders. The simple carta140b1 shell script is required to make the carta_backend executable aware of their locations. This is my first attempt, so I might be able to improve the directory structure later (e.g. if two bin folders are confusing).

Goal

Ultimately, I would hope this could be combined with carta-node-server to make deployment a lot easier.

It should save a lot of time (and storage space) by eliminating the need to build the carta-backend from source. That process is quite involend needing many pacakges and third party libraries installed/built (e.g. uWS, zfp, carta-casacore, and casacore-data).