Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rvhonorato/jobd
A lightweight Golang REST API daemon for seamless file transfer and job management in containerized research software environments.
https://github.com/rvhonorato/jobd
containerization docker golang microservices research-software rest-api
Last synced: about 1 month ago
JSON representation
A lightweight Golang REST API daemon for seamless file transfer and job management in containerized research software environments.
- Host: GitHub
- URL: https://github.com/rvhonorato/jobd
- Owner: rvhonorato
- License: mit
- Created: 2024-11-22T14:55:00.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-11-22T17:05:47.000Z (about 1 month ago)
- Last Synced: 2024-11-22T17:37:13.475Z (about 1 month ago)
- Topics: containerization, docker, golang, microservices, research-software, rest-api
- Language: Go
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `jobd` (Job Daemon)
![GitHub License](https://img.shields.io/github/license/rvhonorato/jobd)
[![ci](https://github.com/rvhonorato/jobd/actions/workflows/ci.yml/badge.svg)](https://github.com/rvhonorato/jobd/actions/workflows/ci.yml)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/ae50eb8e1303415f981ec755f0b8a28f)](https://app.codacy.com/gh/rvhonorato/jobd/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/ae50eb8e1303415f981ec755f0b8a28f)](https://app.codacy.com/gh/rvhonorato/jobd/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage)_documentation wip_
`jobd` is a lightweight Golang application designed to facilitate interaction with research software through REST APIs. It is specifically engineered to be deployed in multi-stage Docker builds, providing a flexible and portable solution for job management and file transfer.
## Key Features
Implements two primary REST API endpoints:- `/upload`: Allows backend systems or scripts to upload files to the container
- `/download`: Enables retrieval of files from the container## Docker Integration
The application is optimized for containerized environments, supporting multi-stage build patterns. In the example dockerfile:First stage pulls the jobd executable from a specific image
Second stage incorporates the executable into a base research container
Enables seamless integration of job management capabilities into existing research software containers```dockerfile
# Stage 1: Copy jobd executable
FROM ghcr.io/rvhonorato/jobd:latest AS jobd# Stage 2: Base research image
FROM ghcr.io/haddocking/arctic3d:v0.5.1 AS baseWORKDIR /data
COPY --from=jobd /path/to/jobd /bin/jobdENTRYPOINT [ "/bin/jobd" ]
```## Use Cases
- Microservice-based job submission and file handling
- Simplified API interfaces for research software workflows## Technical Characteristics
- Written in Golang for performance and simplicity
- REST API-based communication
- Lightweight and containerization-friendly
- Designed for research and scientific computing environmentsThe application provides a standardized, portable mechanism for programmatic file and job interactions across different research software platforms.