Ansible |
Ansible is a suite of open source command line tools (written in Python) that enables Infrastructure as Code (IaC) - including configuring systems, deploying software, and orchestrating workflows, known for its simplicity and ease of use.
|
Continuous Integration... |
|
Apptainer |
Apptainer (formerly Singularity) simplifies the creation and execution of containers, ensuring software components are encapsulated for portability and reproducibility, especially in High Performance Computing (HPC) environments.
|
Reproducible software ... |
|
Bandit |
Bandit is a tool designed to find common security issues in Python code.
|
|
|
Bash |
Bash, which stands for - Bourne Again SHell, is a command-line interface and scripting language commonly used in Unix and Unix-like operating systems. It provides a powerful environment for executing commands, managing files, and automating tasks through scripts.
|
Choosing languages, to... |
|
Bearer |
Bearer CLI is a static application security testing (SAST) tool that scans your source code and analyzes your data flows to discover, filter and prioritize security and privacy risks.
|
|
|
Black |
Automated Python code formatter
|
|
|
Bundler |
Bundler is a Ruby gems and environment management tool for Ruby projects.
|
Reproducible software ... |
|
C++ |
C++ is a high-performance, general-purpose programming language that supports both procedural and object-oriented paradigms, offering fine-grained control over system resources. Known for its versatility and efficiency, C++ is widely used in applications requiring high speed and precision, such as game development, operating systems, and real-time simulations.
|
Choosing languages, to... |
|
Calendar Versioning |
Calendar Versioning (CalVer) is a versioning convention based on your project's release calendar, instead of arbitrary numbers.
|
Releasing software |
|
carbontracker |
Tracks and predicts the energy consumption and carbon footprint of training deep learning models
|
Improving environmenta... |
|
CFFINIT Generator |
|
|
|
ChatGPT |
Generative artificial intelligence chatbot developed by OpenAI and able to produce code or answer questions on code
|
|
|
Checkstyle |
Static code analysis tool for Java
|
|
|
Choose an open source license |
Choose an open source license is a tool to help you choose an open source license for your software. An open source license protects contributors, users and developers.
|
Licensing software |
|
CMake |
Software Build System.
|
|
|
Code Linters |
Static code analysis tools
|
Writing readable code |
|
CodeCarbon |
A software package that integrates into Python codebase - estimating the amount of carbon dioxide (CO2) produced by the cloud or personal computing resources used to execute the code
|
Improving environmenta... |
|
CodeMeta |
CodeMeta is a community standard and initiative focused on creating a minimal metadata schema for scientific software and code, promoting their findability, preservation, and reuse through machine-readable metadata in JSON-LD format.
|
Software identifiers
Software metadata |
|
CodeMeta Generator |
A free, open-source project that creates a minimal metadata schema for research software and code
|
Software metadata |
|
Conan |
Conan is an open source, decentralised and multi-platform package manager for C and C++ that allows for creating and sharing native binaries.
|
Reproducible software ... |
|
Conda |
Open-source, cross-platform, language-agnostic package manager and environment management system - originally developed to solve package management challenges faced by Python data scientists
|
Reproducible software ... |
|
CPPUnit |
CPP testing tool
|
|
|
Creative Commons License Chooser |
Creative Commons license chooser to help you select an appropriate Creative Commons license
|
|
|
CUDA |
|
Choosing languages, to... |
|
Dependabot |
Generate automated pull requests updating dependencies for projects
|
|
|
Docker |
Docker is a tool for creating isolated environments (application isolation) for software development called containers to enable consistent software running across platforms. Docker allows developers to build, share, run and verify applications easily. DockerHub is a repository for sharing and managing container images.
|
Continuous Integration...
Creating a good README
Reproducible software ... |
|
Docker Compose |
Docker Compose is a tool for defining and running multi-container applications for streamlined and efficient development and deployment experience.
|
Reproducible software ... |
|
Documenter.jl |
A documentation generator for Julia.
|
Documenting software
Software documentation |
|
Doxygen |
Documentation generator tool in software development for C++ (and also C, Python, PHP, Java, C#, Objective-C, Fortran, VHDL, Splice, IDL, and Lex)
|
Documenting software
Software documentation |
|
DVC |
Data Version Control - to help you manage and version images, audio, video, and text files in storage and organise your ML modeling process into a reproducible workflow
|
|
|
Eclipse |
Free and open-source Integrated Development Environment (IDE) used for Java development, with support for developing applications in other programming languages too
|
Software documentation
Using version control
Writing readable code |
|
Ecograder |
Evaluates website sustainability based on design and operational efficiency
|
Improving environmenta... |
|
eOSSR |
Python library to programmatically manage the ESCAPE OSSR; also includes a CodeMeta generator and validator
|
Software identifiers |
|
F-UJI |
Original version for automated assessment of data FAIRness; extended version (POC only - not all metrics are implemented) for research software based on the FAIR4RS principles.
|
|
|
FAIR Aware |
Guided approach to assess the FAIRness of data
|
|
|
FAIR Python Coockiecutter |
FAIR Python Cookiecutter is a cookiecutter template command-line tool to help you kickstart a modern best-practice Python project with FAIR metadata
|
|
|
FigShare |
Figshare is a provider of open research repository infrastructure for sharing, showcasing and managing all research outputs in a discoverable, citable, reportable and transparent way.
|
Software metadata |
|
Flake8 |
Static code analysis tool for Python
|
|
|
Fortran |
Modern Fortran is high-performance parallel programming language that is especially suited to numeric computation and scientific computing.
|
Choosing languages, to... |
|
Galaxy |
Galaxy is a free, open-source system for analysing data, authoring workflows, training and education, publishing tools, and managing infrastructure.
|
Reproducible software ... |
|
Gcov |
Code coverage analysis tool
|
|
|
Git |
Distributed version control system designed to handle everything from small to very large projects with speed and efficiency
|
Using version control |
|
Git Large File Storage |
An open source Git extension for versioning large files, such as audio samples, videos, datasets, and graphics
|
Using version control |
|
GitHub |
GitHub is a platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control. GitHub provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project.
|
Documenting software
Documenting software u...
Releasing software
Software documentation
Using version control |
|
GitHub Actions |
GitHub's infrastructure for continuous integration, deployment and delivery
|
Documenting software u...
Task automation using ...
Testing software |
|
GitHub Pages |
Publish static websites directly from GitHub repository
|
|
|
GitLab |
DevOps platform that enables teams to collaborate, plan, develop, test, and deploy software using an integrated toolset for version control, CI/CD, and project management.
|
Documenting software
Documenting software u...
Packaging & releasing ...
Releasing software
Software documentation
Using version control |
|
GitLab CI/CD |
GitLab's infrastructure for continuous integration, deployment and delivery
|
Documenting software u...
Testing software |
|
GitLab Pages |
A GitLab tool that publishes static websites directly from a GitLab repository
|
|
|
gitleaks |
SAST tool for detecting and preventing hardcoded secrets like passwords, API keys, and tokens in code stored in Git repositories
|
|
|
Google’s programming style guide |
Style guidelines used for Google code
|
Writing readable code |
|
Green Algorithms |
An online tool to estimate the carbon footprint of computational tasks using a web calculator
|
Improving environmenta... |
|
Greenspector Studio |
A tool that measures energy usage and resource efficiency in web and mobile applications
|
Improving environmenta... |
|
Guix |
Package manager.
|
|
|
Hadolint |
Dockerfile linter
|
|
|
Hermes Workflows |
|
|
|
howfairis |
Howfariris is a command line tool to analyze a GitHub or GitLab repository's compliance with the EU FAIR software recommendations.
|
Creating a good README |
|
Hugo |
Static website generation based on Go
|
|
|
IntelliJ IDEA |
Integrated development environment (IDE) written in Java.
|
|
|
InvenioRDM |
A turn-key research data management (RDM) repository based on Invenio Framework and Zenodo
|
Software metadata |
|
Java |
Java is a versatile, object-oriented programming language designed to be platform-independent, with its “write once, run anywhere” capability enabled by the Java Virtual Machine (JVM).
|
Creating a good README |
|
JavaDoc |
Documentation generator for Java used to generate API documentation in HTML format from Java source code
|
Documenting software |
|
JavaScript |
JavaScript is a lightweight, high-level programming language primarily used to create interactive and dynamic content on web pages, running seamlessly in browsers. Known for its versatility, JavaScript supports event-driven, functional, and object-oriented programming, making it essential for modern web development and widely used alongside HTML and CSS.
|
Choosing languages, to... |
|
Jenkins |
Automation server to support building, testing and deploying software
|
|
|
JSDoc |
An API documentation generator for JavaScript, similar to Javadoc
|
Documenting software
Software documentation |
|
JSON-LD validator |
Service to validate JSON-LD files
|
Software metadata |
|
Julia |
Julia is a high-performance programming language designed for numerical and scientific computing that combines the speed of C with the ease of use of Python. It features multiple dispatch, optional typing, and excellent parallel processing capabilities, making it particularly strong for mathematical computations, data science, and machine learning applications.
|
Choosing languages, to... |
|
JUnit |
Test automation framework for Java
|
Testing software |
|
Jupyter-Book |
For building publication-quality books and documents from computational material
|
|
|
Keras |
Keras is a multi-backend deep learning framework, with support for JAX, TensorFlow, PyTorch, and OpenVINO (for inference-only) to build and train models for computer vision, natural language processing, audio processing, timeseries forecasting, recommender systems, etc.
|
Software documentation |
|
Kubernetes |
Kubernetes is a container orchestration platform that manages the deployment, scaling, and operation of containerised applications.
|
Continuous Integration... |
|
Maven |
Maven is a software project management and build automation tool used primarily for Java, but can also be used to build and manage projects written in C#, Ruby, Scala, and other programming languages.
|
Reproducible software ... |
|
Mercurial |
Distributed source control management tool - it efficiently handles projects of any size and offers an easy and intuitive interface
|
Using version control |
|
MKDocs |
A tool for creating static documentation for software projects from Markdown
|
Documenting software
Documenting software u...
Software documentation |
|
NixOS |
NixOS is a free and open-source Linux distribution based on the Nix package manager. It uses declarative configuration (using the Nix language) to manage packages and the entire system environment - allowing for reproducibility and portability.
|
Reproducible software ... |
|
OpenCL |
OpenCL (Open Computing Language) is an open standard for parallel programming across various platforms, including CPUs, GPUs, and other processors. It enables developers to write programs that execute across heterogeneous computing systems, allowing for high-performance computing in applications like scientific simulations, image processing, and machine learning.
|
Choosing languages, to... |
|
Packer |
Packer is an automated build system to manage the creation of identical images for containers and virtual machines (multiple platforms) from a single source configuration, encapsulating 'Images as Code' philosophy. Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel.
|
Reproducible software ... |
|
Pelican |
Static website generation based on Python
|
|
|
PEP8 |
Style guide for Python code
|
Writing readable code |
|
Perforce |
Highly scalable development and DevOps solutions designed to deliver dynamic development, intelligent testing and risk management environment
|
Using version control |
|
Pip |
Package manager for Python packages
|
Reproducible software ... |
|
Pkg.jl |
Pkg.jl is a package manager for the Julia programming language.
|
Reproducible software ... |
|
Playwrite |
Framework for Web testing and automation, allowing testing using Chromium, Firefox and WebKit with a single API
|
|
|
Poetry |
Python packaging and dependency management tool
|
Reproducible software ... |
|
PowerShell |
PowerShell is a Microsoft task automation and configuration management framework, featuring a command-line shell and a scripting language. It is designed to help system administrators and power users control and automate the administration of Windows and other Microsoft technologies.
|
Choosing languages, to... |
|
precommit |
A framework for managing and maintaining multi-language pre-commit hooks
|
|
|
Prettier |
Prettier is a code formatter to enforce a consistent style with its own rules for different languages, including JavaScript, TypeScript, Flow, JSX, JSON, CSS, SCSS, Less, HTML, Vue, Angular, GraphQL, Markdown, and YAML.
|
|
|
PyCharm |
Free Python Integrated Development Environment (IDE) for application, data science and web development
|
Software documentation
Using version control
Writing readable code |
|
Pylint |
Static code analysis tool for Python
|
Writing readable code |
|
Pytest |
Test automation framework for Python
|
Testing software |
|
Python |
Python is an interpreted, high-level, object-oriented programming language known for its dynamic typing, readability, and extensive standard library, making it ideal for rapid development and modular, reusable code.
|
Creating a good README
Choosing languages, to... |
|
Python Docstring Generator |
Python Docstring Generator for Visual Studio Code
|
Software documentation |
|
Python Package Index (PyPi) |
Official third-party software repository for Python packages
|
Packaging & releasing ...
Reproducible software ... |
|
R |
R is a programming language and environment designed for statistical computing and graphics, widely used by data scientists, statisticians, and researchers. Known for its extensive libraries and rich visualization capabilities, R excels in data analysis, modelling, and reproducible research.
|
Choosing languages, to... |
|
R Style Guide |
Google’s R code style guide
|
Writing readable code |
|
Read the Docs |
A documentation building and hosting platform aimed at helping developers create documentation from code
|
Documenting software
Documenting software u...
Software documentation |
|
Renv |
Package that helps you create reproducible environments for your R projects - use renv to make your R projects more isolated, portable and reproducible
|
Reproducible software ... |
|
REUSE |
Automate the declaring of copyright and licensing for software projects with SPDX Tags
|
Licensing software |
|
Roxygen |
Documentation generator tool in software development for R
|
Documenting software
Software documentation |
|
RPM |
Package manager.
|
|
|
RSQKit |
RSQKit is a platform that curates quality practices in research software. It links to tools, resources, quality metrics, and training to support implementing these practices, while also highlighting the importance of roles like Research Software Engineers (RSEs) and career development in the field.
|
Licensing software |
|
RStudio |
Integrated Development Environment (IDE) for R, a programming language for statistical computing and graphics
|
Using version control
Writing readable code |
|
Ruff |
An extremely fast Python linter and code formatter written in Rust
|
|
|
Rust |
Rust is a systems programming language focused on memory safety, concurrency, and performance without using garbage collection, enforcing memory safety through its unique ownership system and borrowing rules. It combines low-level control with high-level abstractions, making it suitable for everything from operating systems to WebAssembly applications.
|
Choosing languages, to... |
|
Score-P |
The Score-P (Scalable Performance Measurement Infrastructure for Parallel Codes) measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling and event trace recording of HPC applications.
|
|
|
Selenium |
Automates Web browser interaction from Python - Selenium WebDriver is often used as a basis for testing Web applications
|
|
|
Semantic Versioning |
Semantic versioning (SemVer) is a widely-adopted version scheme that encodes a version of a project by a three-part version number (MAJOR.MINOR.PATCH), an optional pre-release tag, and an optional build meta tag.
|
Packaging & releasing ...
Releasing software
Software identifiers |
|
Singularity |
Singularity is an open source container platform allows us to create and run containers that package up pieces of software in a way that is portable and reproducible. Singularity is designed for ease-of-use on shared multiuser systems and in High Performance Computing (HPC) environments. Singularity is compatible with all Docker images and it can be used with GPUs and MPI applications.
|
Reproducible software ... |
|
Software Heritage |
Collects, preserves, curates and makes available software in source code form as cultural heritage
|
Software metadata |
|
SOMEF |
Software Metadata Extraction Framework (SOMEF) is a command line tool for automatically extracting relevant software information from README files
|
Creating a good README
Software metadata |
|
SOMEF Vider |
A service running SOMEF to obtain CodeMeta files
|
Software metadata |
|
SonarQube |
Continuous inspection of code quality to perform automatic reviews for static analysis of code
|
|
|
SPDX |
System Package Data Exchange (SPDX) is an open standard for representing systems with software components as SBOMs (Software Bill of Materials) and other AI, data and security references supporting a range of risk management use cases.
|
Licensing software
Software metadata |
|
Sphinx |
Documentation generator from reStructuredText files primarily for Python, but also supports other languages - C++, C, JavaScript.
|
Documenting software
Documenting software u...
Software documentation |
|
SQAaas |
Software Quality Assessment as a Service - the Quality Assessment & Awarding building block analysing the level of completeness with the FAIR4RS reference criteria for any given release of your software
|
|
|
Subversion |
Version control system
|
Using version control |
|
Swagger |
A suite of tools for API developers that generate APIs from code (and the basis for the OpenAPI Specification)
|
Documenting software
Software documentation |
|
Terraform |
Terraform is a powerful and one of the most popular Infrastructure as Code (IaC) tools that enables infrastructure management across multiple cloud providers using a simple, declarative language,
|
Continuous Integration... |
|
Test.jl |
Test module for Julia
|
Testing software |
|
testthat |
Unit Testing for R
|
Testing software |
|
tox |
Python testing tool
|
|
|
Travis |
CI platform to support building, testing and deploying software
|
|
|
TypeScript |
TypeScript is a strongly typed superset of JavaScript that adds static typing and advanced tooling capabilities, enhancing code quality and developer productivity. Designed for building scalable applications, TypeScript compiles to plain JavaScript, ensuring compatibility with existing JavaScript environments.
|
Choosing languages, to... |
|
UV |
UV is extremely fast Python package and project manager, written in Rust.
|
Reproducible software ... |
|
Vagrant |
Vagrant is a tool that simplifies and provides a single workflow for the creation and management of virtual machines, and provides full VM isolation.
|
Continuous Integration...
Reproducible software ... |
|
Valgrind |
Detect memory management and threading bugs, run profiling to see how to speed up your programs
|
|
|
Venv |
Python module for creating lightweight “virtual environments”, each with their own independent set of Python packages installed in their site directories
|
Reproducible software ... |
|
Visual Studio Code |
Visual Studio Code, commonly referred to as VS Code, is an Integrated Development Environment (IDE) developed by Microsoft that includes support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded version control with Git.
|
Software documentation
Using version control
Writing readable code |
|
Workflow Description Language |
Workflow Description Language (WDL) is an open standard for describing data processing workflows with a human-readable and writeable syntax.
|
Reproducible software ... |
|
Zammad |
Helpdesk software, ticketing system
|
|
|
Zenodo |
Zenodo is a general-purpose open repository developed under the European OpenAIRE program and operated by CERN. It allows researchers to deposit research papers, data sets, research software, reports, and other research-related digital artefacts.
|
Documenting software
Releasing software
Software documentation
Software identifiers
Software metadata |
|