{"id":20999777,"url":"https://github.com/nfdi4plants/arctrl","last_synced_at":"2025-04-07T10:26:11.646Z","repository":{"id":40246144,"uuid":"328789374","full_name":"nfdi4plants/ARCtrl","owner":"nfdi4plants","description":"Polyglot (.NET/JS/Python) library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime-agnostic contract systems.","archived":false,"fork":false,"pushed_at":"2025-03-27T09:12:25.000Z","size":10368,"stargazers_count":17,"open_issues_count":26,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T08:12:12.478Z","etag":null,"topics":["arc","cwl","fable-libraries","fair-data","fsharp","isa","rdm","ro-crate"],"latest_commit_sha":null,"homepage":"https://nfdi4plants.github.io/nfdi4plants.knowledgebase/arctrl/","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nfdi4plants.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-11T20:55:56.000Z","updated_at":"2025-03-27T09:11:28.000Z","dependencies_parsed_at":"2023-09-26T15:58:14.800Z","dependency_job_id":"20b2aaef-4a78-4db3-ac53-28a9ded37c4f","html_url":"https://github.com/nfdi4plants/ARCtrl","commit_stats":{"total_commits":1188,"total_committers":11,"mean_commits":108.0,"dds":0.4191919191919192,"last_synced_commit":"5af193cf5d70881b9c21772bf306df172853d6a5"},"previous_names":["nfdi4plants/arctrl"],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2FARCtrl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2FARCtrl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2FARCtrl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nfdi4plants%2FARCtrl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nfdi4plants","download_url":"https://codeload.github.com/nfdi4plants/ARCtrl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247634195,"owners_count":20970481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arc","cwl","fable-libraries","fair-data","fsharp","isa","rdm","ro-crate"],"created_at":"2024-11-19T08:08:14.070Z","updated_at":"2025-04-07T10:26:11.616Z","avatar_url":"https://github.com/nfdi4plants.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿\n![logo](logos/ARCtrl_horizontal.png)\n\n# ARCtrl\n\n\u003e **ARCtrl** the easy way to read, manipulate and write ARCs in __.NET__, __JavaScript__ and __Python__! ❤️\n\n| Version | Downloads |\n| :--------|-----------:|\n|\u003ca href=\"https://www.nuget.org/packages/ARCtrl/\"\u003e\u003cimg alt=\"Nuget\" src=\"https://img.shields.io/nuget/v/ARCtrl?logo=nuget\u0026color=%234fb3d9\"\u003e\u003c/a\u003e|\u003ca href=\"https://www.nuget.org/packages/ARCtrl/\"\u003e\u003cimg alt=\"Nuget\" src=\"https://img.shields.io/nuget/dt/ARCtrl?color=%234FB3D9\"\u003e\u003c/a\u003e|\n|\u003ca href=\"https://www.npmjs.com/package/@nfdi4plants/arctrl\"\u003e\u003cimg alt=\"NPM\" src=\"https://img.shields.io/npm/v/%40nfdi4plants/arctrl?logo=npm\u0026color=%234fb3d9\"\u003e\u003c/a\u003e|\u003ca href=\"https://www.npmjs.com/package/@nfdi4plants/arctrl\"\u003e\u003cimg alt=\"NPM\" src=\"https://img.shields.io/npm/dt/%40nfdi4plants%2Farctrl?color=%234fb3d9\"\u003e\u003c/a\u003e|\n|\u003ca href=\"https://pypi.org/project/ARCtrl/\"\u003e\u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/arctrl?logo=pypi\u0026color=%234fb3d9\"\u003e\u003c/a\u003e|\u003ca href=\"https://pypi.org/project/ARCtrl/\"\u003e\u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pepy/dt/arctrl?color=%234fb3d9\"\u003e\u003c/a\u003e|\n\n## Install\n\n#### .NET\n\n```fsharp\n#r \"nuget: ARCtrl\"\n``` \n\n```bash\n\u003cPackageReference Include=\"ARCtrl\" Version=\"1.1.0\" /\u003e\n```\n\n#### JavaScript\n\n```bash\nnpm i @nfdi4plants/arctrl\n```\n\n#### Python\n\n```bash\npip install arctrl\n```\n\n## Docs\n\nDocumentation can be found [here](https://nfdi4plants.github.io/nfdi4plants.knowledgebase/arctrl/)\n\n## Development\n\n#### Requirements\n\n- [nodejs and npm](https://nodejs.org/en/download)\n    - verify with `node --version` (Tested with v18.16.1)\n    - verify with `npm --version` (Tested with v9.2.0)\n- [.NET SDK](https://dotnet.microsoft.com/en-us/download)\n    - verify with `dotnet --version` (Tested with 7.0.306)\n- [Python](https://www.python.org/downloads/)\n    - verify with `py --version` (Tested with 3.12.2, known to work only for \u003e=3.11)\n\n#### Local Setup\n\nOn windows you can use the `setup.cmd` to run the following steps automatically!\n\n1. Setup dotnet tools\n\n   `dotnet tool restore`\n\n\n2. Install NPM dependencies\n   \n    `npm install`\n\n3. Setup python environment\n    \n    `py -m venv .venv`\n\n4. Install [Poetry](https://python-poetry.org/) and dependencies\n\n   1. `.\\.venv\\Scripts\\python.exe -m pip install -U pip setuptools`\n   2. `.\\.venv\\Scripts\\python.exe -m pip install poetry`\n   3. `.\\.venv\\Scripts\\python.exe -m poetry install --no-root`\n\nVerify correct setup with `./build.cmd runtests` ✨\n\n## Branding\n\nFeel free to reference `ARCtrl` on slides or elsewhere using our logos:\n\n|Square | Horizontal | Vertical |\n| - | - | - |\n| ![square](logos/ARCtrl_square.png) | ![horizontal](logos/ARCtrl_horizontal.png) |  ![vertical](logos/ARCtrl_vertical.png) |\n\n## Performance\n\nMeasured on 13th Gen Intel(R) Core(TM) i7-13800H\n\n| Name | Description | FSharp Time (ms) | JavaScript Time (ms) | Python Time (ms) |\n| --- | --- | --- | --- | --- |\n| Table_GetHashCode | From a table with 1 column and 10000 rows, retrieve the Hash Code |  5 | 21 | 226 |\n| Table_AddRows | Add 10000 rows to a table with 4 columns. |  15 | 22 | 289 |\n| 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 |\n| Table_ToJson | Serialize a table with 5 columns and 10000 rows to json. |  1099 | 481 | 6833 |\n| Table_ToCompressedJson | Serialize a table with 5 columns and 10000 rows to compressed json. |  261 |  2266 | 717334 |\n| Assay_toJson | Parse an assay with one table with 10000 rows and 6 columns to json |  915 | 2459 | 28799 |\n| Study_FromWorkbook | Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy |  97 | 87 | 1249 |\n| Investigation_ToWorkbook_ManyStudies | Parse an investigation with 1500 studies to a workbook |  621 | 379 | 9974 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfdi4plants%2Farctrl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfdi4plants%2Farctrl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfdi4plants%2Farctrl/lists"}