Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nfdi4plants/arctrl
Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime-agnostic contract systems.
https://github.com/nfdi4plants/arctrl
arc fable-libraries fair-data fsharp isa rdm
Last synced: about 1 month ago
JSON representation
Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime-agnostic contract systems.
- Host: GitHub
- URL: https://github.com/nfdi4plants/arctrl
- Owner: nfdi4plants
- License: mit
- Created: 2021-01-11T20:55:56.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-18T14:20:21.000Z (about 1 month ago)
- Last Synced: 2024-11-18T14:22:50.529Z (about 1 month ago)
- Topics: arc, fable-libraries, fair-data, fsharp, isa, rdm
- Language: F#
- Homepage:
- Size: 6.64 MB
- Stars: 16
- Watchers: 5
- Forks: 8
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ARCtrl
> **ARCtrl** the easy way to read, manipulate and write ARCs in __.NET__, __JavaScript__ and __Python__! ❤️
| Version | Downloads |
| :--------|-----------:|
|||
|||
|||## Install
#### .NET
```fsharp
#r "nuget: ARCtrl"
``````bash
```
#### JavaScript
```bash
npm i @nfdi4plants/arctrl
```#### Python
```bash
pip install arctrl
```## Docs
Currently we provide some documentation in form of markdown files in the `/docs` folder of this repository!
[Check it out!](/docs)
## Development
#### Requirements
- [nodejs and npm](https://nodejs.org/en/download)
- verify with `node --version` (Tested with v18.16.1)
- verify with `npm --version` (Tested with v9.2.0)
- [.NET SDK](https://dotnet.microsoft.com/en-us/download)
- verify with `dotnet --version` (Tested with 7.0.306)
- [Python](https://www.python.org/downloads/)
- verify with `py --version` (Tested with 3.12.2, known to work only for >=3.11)#### Local Setup
On windows you can use the `setup.cmd` to run the following steps automatically!
1. Setup dotnet tools
`dotnet tool restore`
2. Install NPM dependencies
`npm install`3. Setup python environment
`py -m venv .venv`4. Install [Poetry](https://python-poetry.org/) and dependencies
1. `.\.venv\Scripts\python.exe -m pip install -U pip setuptools`
2. `.\.venv\Scripts\python.exe -m pip install poetry`
3. `.\.venv\Scripts\python.exe -m poetry install --no-root`Verify correct setup with `./build.cmd runtests` ✨
## Performance
Measured on 13th Gen Intel(R) Core(TM) i7-13800H
| Name | Description | FSharp Time (ms) | JavaScript Time (ms) | Python Time (ms) |
| --- | --- | --- | --- | --- |
| Table_GetHashCode | From a table with 1 column and 10000 rows, retrieve the Hash Code | 5 | 21 | 226 |
| Table_AddRows | Add 10000 rows to a table with 4 columns. | 15 | 22 | 289 |
| Table_fillMissingCells | For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. | 49 | 108 | 4813 |
| Table_ToJson | Serialize a table with 5 columns and 10000 rows to json. | 1099 | 481 | 6833 |
| Table_ToCompressedJson | Serialize a table with 5 columns and 10000 rows to compressed json. | 261 | 2266 | 717334 |
| Assay_toJson | Parse an assay with one table with 10000 rows and 6 columns to json | 915 | 2459 | 28799 |
| Study_FromWorkbook | Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy | 97 | 87 | 1249 |
| Investigation_ToWorkbook_ManyStudies | Parse an investigation with 1500 studies to a workbook | 621 | 379 | 9974 |