{"id":350487,"name":"Shyft","description":"A cross-platform framework built around high-performancetime-series storage and analysis, providing the computational foundation for hydrological forecasting and energy-market modelling.","url":"https://gitlab.com/shyft-os/shyft","last_synced_at":"2026-07-24T02:00:43.363Z","repository":{"id":50405799,"uuid":"11841415","full_name":"shyft-os/shyft","owner":"shyft-os","description":"Source code for shyft.\r\n* Time-series for python and c++, including distributed storage and calculations\r\n* Hydrologic Forecasting Toolbox, high-performance flexible stacks, including calibration\r\n* Energy-market models and micro services\r\n","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":32,"open_issues_count":116,"forks_count":20,"subscribers_count":null,"default_branch":"master","last_synced_at":"2025-11-27T21:18:41.444Z","etag":null,"topics":["C++","Hydrology","energy-market","forecasting","optimization","python","time-series"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":null,"metadata":{},"created_at":"2019-04-13T16:04:16.075Z","updated_at":"2025-11-27T10:19:48.172Z","dependencies_parsed_at":"2022-08-20T11:30:36.923Z","dependency_job_id":null,"html_url":"https://gitlab.com/shyft-os/shyft","commit_stats":null,"previous_names":[],"tags_count":125,"template":null,"template_full_name":null,"purl":"pkg:gitlab/shyft-os/shyft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/shyft-os","download_url":"https://gitlab.com/shyft-os/shyft/-/archive/master/shyft-master.zip","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/sbom","scorecard":null,"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4521539,"owners_count":7348,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2026-06-04T14:33:06.434Z","status":"online","status_checked_at":"2026-07-13T02:00:08.723Z","response_time":2015,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.382Z","robots_txt_url":"https://gitlab.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"owner":null,"packages":[{"id":2054291,"name":"shyft","ecosystem":"pypi","description":"('Open Shyft, - An framework providing python enabled tools and services for the energy-market, hydrological forecasting and advanced time-series',)","homepage":"https://gitlab.com/shyft-os/shyft","licenses":"LGPL v3","normalized_licenses":["LGPL-3.0"],"repository_url":"https://gitlab.com/shyft-os/shyft","keywords_array":[],"namespace":null,"versions_count":285,"first_release_published_at":"2018-04-08T20:51:19.000Z","latest_release_published_at":"2024-05-22T15:02:41.000Z","latest_release_number":"15.0.1","last_synced_at":"2026-07-15T22:05:31.532Z","created_at":"2022-04-09T20:11:00.907Z","updated_at":"2026-07-15T22:49:56.595Z","registry_url":"https://pypi.org/project/shyft/","install_command":"pip install shyft --index-url https://pypi.org/simple","documentation_url":"https://shyft.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"shyft","project_status":null},"repo_metadata":{"id":50405799,"uuid":"11841415","full_name":"shyft-os/shyft","owner":"shyft-os","description":"Source code for shyft.\r\n* Time-series for python and c++, including distributed storage and calculations\r\n* Hydrologic Forecasting Toolbox, high-performance flexible stacks, including calibration\r\n* Energy-market models and micro services\r\n","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":32,"open_issues_count":116,"forks_count":20,"subscribers_count":null,"default_branch":"master","last_synced_at":"2025-11-27T21:18:41.444Z","etag":null,"topics":["C++","Hydrology","energy-market","forecasting","optimization","python","time-series"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":null,"metadata":{},"created_at":"2019-04-13T16:04:16.075Z","updated_at":"2025-11-27T10:19:48.172Z","dependencies_parsed_at":"2022-08-20T11:30:36.923Z","dependency_job_id":null,"html_url":"https://gitlab.com/shyft-os/shyft","commit_stats":null,"previous_names":[],"tags_count":125,"template":null,"template_full_name":null,"purl":"pkg:gitlab/shyft-os/shyft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/shyft-os","download_url":"https://gitlab.com/shyft-os/shyft/-/archive/master/shyft-master.zip","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/sbom","scorecard":null,"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4521539,"owners_count":7348,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2026-06-04T14:33:06.434Z","status":"online","status_checked_at":"2026-07-13T02:00:08.723Z","response_time":2015,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.382Z","robots_txt_url":"https://gitlab.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"},"tags":[]},"repo_metadata_updated_at":"2026-07-15T22:49:56.594Z","dependent_packages_count":0,"downloads":226,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":4.989174629665887,"dependent_repos_count":21.534861440080295,"dependent_packages_count":10.125576461732065,"stargazers_count":11.594365490148355,"forks_count":9.32528287534468,"docker_downloads_count":null,"average":11.513852179394256},"purl":"pkg:pypi/shyft","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/shyft","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/shyft","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/shyft/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-06-23T11:01:10.366Z","issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft/codemeta","maintainers":[{"uuid":"jackal","login":"jackal","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/jackal/","role":null,"created_at":"2022-11-23T23:00:51.872Z","updated_at":"2022-11-23T23:00:51.872Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jackal/packages"},{"uuid":"sigbjorn_helset","login":"sigbjorn_helset","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/sigbjorn_helset/","role":null,"created_at":"2022-11-23T23:00:51.875Z","updated_at":"2022-11-23T23:00:51.875Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/sigbjorn_helset/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":914373,"maintainers_count":391976,"namespaces_count":0,"keywords_count":289179,"github":"pypi","metadata":{"funded_packages_count":54301},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-06-10T05:13:28.296Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},{"id":2054290,"name":"shyft.time-series","ecosystem":"pypi","description":"Open Shyft for advanced high performance time-series handling","homepage":"https://gitlab.com/shyft-os/shyft","licenses":"LGPL v3","normalized_licenses":["LGPL-3.0"],"repository_url":"https://gitlab.com/shyft-os/shyft","keywords_array":[],"namespace":null,"versions_count":152,"first_release_published_at":"2020-02-28T08:05:29.000Z","latest_release_published_at":"2024-03-14T17:14:20.000Z","latest_release_number":"13.0.3","last_synced_at":"2026-07-15T22:05:31.528Z","created_at":"2022-04-09T20:11:00.658Z","updated_at":"2026-07-15T22:49:56.540Z","registry_url":"https://pypi.org/project/shyft.time-series/","install_command":"pip install shyft.time-series --index-url https://pypi.org/simple","documentation_url":"https://shyft.time-series.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"shyft-time-series","project_status":null},"repo_metadata":{"id":50405799,"uuid":"11841415","full_name":"shyft-os/shyft","owner":"shyft-os","description":"Source code for shyft.\r\n* Time-series for python and c++, including distributed storage and calculations\r\n* Hydrologic Forecasting Toolbox, high-performance flexible stacks, including calibration\r\n* Energy-market models and micro services\r\n","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":32,"open_issues_count":116,"forks_count":20,"subscribers_count":null,"default_branch":"master","last_synced_at":"2025-11-27T21:18:41.444Z","etag":null,"topics":["C++","Hydrology","energy-market","forecasting","optimization","python","time-series"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":null,"metadata":{},"created_at":"2019-04-13T16:04:16.075Z","updated_at":"2025-11-27T10:19:48.172Z","dependencies_parsed_at":"2022-08-20T11:30:36.923Z","dependency_job_id":null,"html_url":"https://gitlab.com/shyft-os/shyft","commit_stats":null,"previous_names":[],"tags_count":125,"template":null,"template_full_name":null,"purl":"pkg:gitlab/shyft-os/shyft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/shyft-os","download_url":"https://gitlab.com/shyft-os/shyft/-/archive/master/shyft-master.zip","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/sbom","scorecard":null,"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4521539,"owners_count":7348,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2026-06-04T14:33:06.434Z","status":"online","status_checked_at":"2026-07-13T02:00:08.723Z","response_time":2015,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.382Z","robots_txt_url":"https://gitlab.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"},"tags":[]},"repo_metadata_updated_at":"2026-07-15T22:49:56.540Z","dependent_packages_count":0,"downloads":580,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":5.753048369051817,"dependent_repos_count":30.615981867388953,"dependent_packages_count":6.612263027370924,"stargazers_count":11.52312200389249,"forks_count":9.682377941509467,"average":12.83735864184273},"purl":"pkg:pypi/shyft.time-series","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/shyft.time-series","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/shyft.time-series","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/shyft.time-series/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-07-05T17:00:44.414Z","issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft.time-series/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft.time-series/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft.time-series/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft.time-series/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft.time-series/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/shyft.time-series/codemeta","maintainers":[{"uuid":"jackal","login":"jackal","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/jackal/","role":null,"created_at":"2022-11-25T12:57:42.877Z","updated_at":"2022-11-25T12:57:42.877Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jackal/packages"},{"uuid":"sigbjorn_helset","login":"sigbjorn_helset","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/sigbjorn_helset/","role":null,"created_at":"2022-11-25T12:57:43.017Z","updated_at":"2022-11-25T12:57:43.017Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/sigbjorn_helset/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":914373,"maintainers_count":391976,"namespaces_count":0,"keywords_count":289179,"github":"pypi","metadata":{"funded_packages_count":54301},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-06-10T05:13:28.296Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":529393,"full_name":"shyft-os/shyft","default_branch":"master","total_commits":4188,"total_committers":76,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":55.10526315789474,"dds":0.5033428844317096,"past_year_total_commits":405,"past_year_total_committers":12,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":33.75,"past_year_dds":0.2913580246913581,"last_synced_at":"2026-07-15T22:10:37.603Z","last_synced_commit":"55618b78213553fd60caa73de69af529d28ba70c","created_at":"2023-03-09T03:43:17.894Z","updated_at":"2026-07-15T22:10:23.872Z","committers":[{"name":"sigbjorn","email":"sigbjorn.helset@gmail.com","login":null,"count":2080},{"name":"John Eivind Helset","email":"private@jehelset.no","login":null,"count":425},{"name":"Paul Christoph Batzing-Rosenvinge","email":"paulchristoph.batzing-rosenvinge@statkraft.com","login":null,"count":337},{"name":"anybo","email":"3847419-anybo@users.noreply.gitlab.com","login":null,"count":175},{"name":"yisak","email":"yisak.abdella@gmail.com","login":null,"count":141},{"name":"Sigbjørn Helset","email":"sigbjorn.helset@statkraft.com","login":null,"count":138},{"name":"Ola Skavhaug","email":"ola@xal.no","login":null,"count":117},{"name":"Ludovic Pochon-Guerin","email":"Ludovic.Pochon-Guerin@statkraft.com","login":null,"count":93},{"name":"Francesc Alted","email":"faltet@gmail.com","login":null,"count":52},{"name":"John Eivind Helset","email":"jehelset@gmail.com","login":null,"count":52},{"name":"Fabio Zeiser","email":"fabio.zeiser@fys.uio.no","login":null,"count":45},{"name":"Magne","email":"magne.nordaas@gmail.com","login":null,"count":43},{"name":"Eivind Lyche Melvær","email":"eivindlyche.melvaer@statkraft.com","login":null,"count":38},{"name":"Christian Vaugelade-Kilaas","email":"christian@vaugelade.no","login":null,"count":34},{"name":"Ole Andreas Ramsdal","email":"oleandreasgronn.ramsdal@statkraft.com","login":null,"count":31},{"name":"Bernardo de Oliveira","email":"bernardo.deoliveira@statkraft.com","login":null,"count":23},{"name":"Trygve Bærland","email":"trygve.baerland@gmail.com","login":null,"count":21},{"name":"felixmatt","email":"f.n.matt@geo.uio.no","login":null,"count":19},{"name":"petar.kutlesic","email":"petar.kutlesic@statkraft.com","login":null,"count":18},{"name":"Andreas","email":"pep8@pm.me","login":null,"count":17},{"name":"cecilie","email":"cecilie.granerod@gmail.com","login":null,"count":16},{"name":"Diako Darian","email":"diako.darian@gmail.com","login":null,"count":16},{"name":"Eirik Gjerløw","email":"egjerlow@gmail.com","login":null,"count":14},{"name":"Jens Askgaard","email":"jens.askgaard@gmail.com","login":null,"count":13},{"name":"John F. Burkhart","email":"jfburkhart@gmail.com","login":null,"count":13},{"name":"Eivind Storm Aarnæs","email":"eivind@xal.no","login":null,"count":11},{"name":"Felix Matt","email":"felix.matt@statkraft.com","login":null,"count":11},{"name":"Eivind Lyche Melvær","email":"eivind@elm.no","login":null,"count":10},{"name":"Eivind Storm Aarnæs","email":"mail@eistaa.com","login":null,"count":10},{"name":"Jakob Boye Løland Ørbæk","email":"jakobboyeloland.orbaek@statkraft.com","login":null,"count":10},{"name":"osilan","email":"olga.silantyeva@gmail.com","login":null,"count":10},{"name":"Andreas","email":"pep8@protonmail.com","login":null,"count":8},{"name":"Erik Tjøtta","email":"erik.tjotta@statkraft.com","login":null,"count":8},{"name":"Gry M. Tveten","email":"gry@xal.no","login":null,"count":8},{"name":"Cecilie Granerød","email":"cecilie.granerod@statkraft.com","login":null,"count":7},{"name":"Eilidh Troup","email":"eilidh.troup@gmail.com","login":null,"count":7},{"name":"John F. Burkhart","email":"john.burkhart@geo.uio.no","login":null,"count":7},{"name":"Lewis Rae Blake","email":"lewisrae.blake@statkraft.com","login":null,"count":7},{"name":"Ludovic Pochon-Guerin","email":"ludoguer@frisurf.no","login":null,"count":7},{"name":"Thomas Zengaffinen-Morris","email":"thomas.zengaffinen-morris@statkraft.com","login":null,"count":6},{"name":"yisak","email":"yisak.abdella+gitlab@gmail.com","login":null,"count":6},{"name":"Vinzenz Eck","email":"vinzenz@xal.no","login":null,"count":6},{"name":"Jiyoung Kim","email":"jiyoung.kim@statkraft.com","login":null,"count":5},{"name":"John F. Burkhart","email":"john.burkhart@statkraft.com","login":null,"count":5},{"name":"Eivind Storm Aarnæs","email":"eistaa@users.noreply.github.com","login":null,"count":4},{"name":"Erik Tjøtta","email":"Erik.Tjotta@statkraft.com","login":null,"count":4},{"name":"Lars Storm","email":"larsstorm.skodje@statkraft.com","login":null,"count":4},{"name":"Melvær Eivind Lyche","email":"u40420@energycorp.com","login":null,"count":4},{"name":"Sarah Dahmen","email":"sarah.dahmen21@gmail.com","login":null,"count":4},{"name":"eriktjotta","email":"etjotta@hotmail.com","login":null,"count":4},{"name":"Eivind Lyche Melvær","email":"511531+eivindlm@users.noreply.github.com","login":null,"count":3},{"name":"Eivind Storm Aarnæs","email":"eiv.s.aa+github@gmail.com","login":null,"count":3},{"name":"John F. Burkhart","email":"jfburkhart.reg@gmail.com","login":null,"count":3},{"name":"Vinzenz Gregor Eck","email":"vinzenz@eck-mail.eu","login":null,"count":3},{"name":"roar-emaus","email":"37277504+roar-emaus@users.noreply.github.com","login":null,"count":3},{"name":"Tobias Litherland","email":"tobias.litherland@statkraft.com","login":null,"count":3},{"name":"Ana Budisa","email":"ana.budisa@statkraft.com","login":null,"count":2},{"name":"Ozer Ozdikis","email":"oozdikis@gmail.com","login":null,"count":2},{"name":"Roar Emaus","email":"roar@emaus.no","login":null,"count":2},{"name":"Stian Angelsen","email":"stian.angelsen@statkraft.com","login":null,"count":2},{"name":"anybo","email":"40888887+anybo@users.noreply.github.com","login":null,"count":2},{"name":"runeyosh","email":"rune.yoshida.tollefsrud@gmail.com","login":null,"count":2},{"name":"Anders Kjeldsen","email":"kjeldsenanders@gmail.com","login":null,"count":1},{"name":"Benedikt Reinartz","email":"filmor@gmail.com","login":null,"count":1},{"name":"Brun Mats","email":"matskbrun@gmail.com","login":null,"count":1},{"name":"Christian Vaugelade-Kilaas","email":"christian.vaugelade-kilaas@statkraft.com","login":null,"count":1},{"name":"Eilidh Troup","email":"14629483-eilidht@users.noreply.gitlab.com","login":null,"count":1},{"name":"Felix Matt","email":"felix.matt@lyse.no","login":null,"count":1},{"name":"Francesc Alted","email":"francesc@continuum.io","login":null,"count":1},{"name":"Gitlab Runner CI User","email":"srv_ci@oslxvbld001t.energycorp.com","login":null,"count":1},{"name":"Igor Vidic","email":"igor.vidic@statkraft.com","login":null,"count":1},{"name":"Jan Magnusson","email":"jmg@nve.no","login":null,"count":1},{"name":"Ola Skavhaug","email":"skavhaug@gmail.com","login":null,"count":1},{"name":"Sigbjørn Helset","email":"sih@a3.home","login":null,"count":1},{"name":"johneih","email":"johneih@stud.ntnu.no","login":null,"count":1},{"name":"unknown","email":"u35888@OSLWVSHT001P.energycorp.com","login":null,"count":1}],"past_year_committers":[{"name":"sigbjorn","email":"sigbjorn.helset@gmail.com","login":null,"count":287},{"name":"John Eivind Helset","email":"private@jehelset.no","login":null,"count":71},{"name":"Paul Christoph Batzing-Rosenvinge","email":"paulchristoph.batzing-rosenvinge@statkraft.com","login":null,"count":23},{"name":"Lewis Rae Blake","email":"lewisrae.blake@statkraft.com","login":null,"count":7},{"name":"Ole Andreas Ramsdal","email":"oleandreasgronn.ramsdal@statkraft.com","login":null,"count":4},{"name":"yisak","email":"yisak.abdella+gitlab@gmail.com","login":null,"count":4},{"name":"Ana Budisa","email":"ana.budisa@statkraft.com","login":null,"count":2},{"name":"Cecilie Granerød","email":"cecilie.granerod@statkraft.com","login":null,"count":2},{"name":"Christian Vaugelade-Kilaas","email":"christian@vaugelade.no","login":null,"count":2},{"name":"Felix Matt","email":"felix.matt@lyse.no","login":null,"count":1},{"name":"Igor Vidic","email":"igor.vidic@statkraft.com","login":null,"count":1},{"name":"Lars Storm","email":"larsstorm.skodje@statkraft.com","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/commits","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","last_synced_at":"2026-07-24T00:00:09.173Z","repositories_count":25233,"commits_count":4314044,"contributors_count":121193,"owners_count":12986,"icon_url":"https://github.com/gitlab.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com/repositories"}},"issues_stats":{"full_name":"shyft-os/shyft","html_url":"https://gitlab.com/shyft-os/shyft","last_synced_at":"2026-07-15T22:01:25.033Z","status":"error","issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2025-06-06T07:10:28.363Z","updated_at":"2026-07-15T22:01:25.033Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/shyft-os%2Fshyft/issues","issue_labels_count":{"bug":82,"enhancement":59,"Doing":54,"To Do":32,"STM":18,"question":16,"Energy Market":10,"dashboard":10,"help wanted":5,"ready":2,"wontfix":2},"pull_request_labels_count":{"enhancement":122,"bug":72,"Doing":59,"STM":58,"Energy Market":30,"dashboard":14,"To Do":6,"ready":5,"WIP":3,"question":2,"docker":1,"wontfix":1},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{"sigbjorn.helset":357,"ole.andreas.ramsdal":43,"sigbjorn.statkraft":31,"anybo":22,"magneano":17,"jehelset":13,"andressl91":8,"askgaard":8,"fzeiser":8,"cecilie.granerod":8,"DiakoDarian":7,"osilan":6,"eivindlyche.melvaer":6,"jfburkhart":4,"diakod":4,"roar-emaus":4,"grytveten":3,"eriktjotta":3,"dahmen.sarah":2,"jonas.gliss":2,"oozdikis":2,"felixmatt":2,"matskbrun":2,"oystein_torget":2,"stian.angelsen":2,"alexanfl":1,"tobias.litherland":1,"jiyoung.kim":1,"mkbrun":1,"tarje.sandvik":1,"yisak.abdella":1,"yoan.dinkov.sk":1,"runeyosh":1,"jens.askgaard-statkraft":1,"harald.wilhelmsen":1,"john.eivind.rmma.helset":1,"eivindlm":1,"trygvba":1,"u50754":1,"fabio_zeiser":1,"TrondW":1},"pull_request_authors":{"sigbjorn.helset":440,"anybo":93,"magneano":25,"u50754":24,"andressl91":21,"trygvba":19,"eivindlyche.melvaer":16,"cecilie.granerod":15,"DiakoDarian":13,"sigbjorn.statkraft":13,"eivindlm":12,"askgaard":12,"grytveten":9,"eriktjotta":7,"stian.angelsen":6,"fzeiser":6,"vgeck":5,"felixmatt":5,"joakim.hove":3,"kjeldsenanders":3,"osilan":3,"dahmen.sarah":3,"jehelset":3,"ole.andreas.ramsdal":3,"jannefiluren":2,"eirikgje":2,"oozdikis":2,"mariussmk":2,"roar-emaus":2,"matskbrun":2,"__dm":1,"jfburkhart":1,"mpivoras":1,"skavhaug":1,"mkbrun":1,"karakcia":1,"Joseph-Bradshaw-SK":1,"eistaa":1},"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","last_synced_at":"2026-07-24T00:00:20.584Z","repositories_count":0,"issues_count":0,"pull_requests_count":0,"authors_count":61892,"icon_url":"https://github.com/gitlab.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":null,"keywords":["C++","Hydrology","energy-market","forecasting","optimization","python","time-series"],"dependencies":[{"ecosystem":"npm","filepath":"examples/web/demo/angular-ts-viewer/package.json","sha":null,"kind":"manifest","created_at":"2022-08-20T11:30:36.269Z","updated_at":"2022-08-20T11:30:36.269Z","repository_link":"https://gitlab.com/shyft-os/shyft/blob/master/examples/web/demo/angular-ts-viewer/package.json","dependencies":[{"id":2161041382,"package_name":"@angular/animations","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041383,"package_name":"@angular/common","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041384,"package_name":"@angular/compiler","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041385,"package_name":"@angular/core","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041386,"package_name":"@angular/forms","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041387,"package_name":"@angular/platform-browser","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041388,"package_name":"@angular/platform-browser-dynamic","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041389,"package_name":"@angular/router","ecosystem":"npm","requirements":"^11.2.5","direct":true,"kind":"runtime","optional":false},{"id":2161041390,"package_name":"highcharts","ecosystem":"npm","requirements":"^7.2.2","direct":true,"kind":"runtime","optional":false},{"id":2161041391,"package_name":"queueing-subject","ecosystem":"npm","requirements":"^0.3.4","direct":true,"kind":"runtime","optional":false},{"id":2161041392,"package_name":"rxjs","ecosystem":"npm","requirements":"^6.6.3","direct":true,"kind":"runtime","optional":false},{"id":2161041393,"package_name":"rxjs-websockets","ecosystem":"npm","requirements":"^7.0.2","direct":true,"kind":"runtime","optional":false},{"id":2161041394,"package_name":"tslib","ecosystem":"npm","requirements":"^2.0.0","direct":true,"kind":"runtime","optional":false},{"id":2161041395,"package_name":"zone.js","ecosystem":"npm","requirements":"^0.10.2","direct":true,"kind":"runtime","optional":false},{"id":2161041396,"package_name":"@angular-devkit/build-angular","ecosystem":"npm","requirements":"^0.1102.4","direct":true,"kind":"development","optional":false},{"id":2161041397,"package_name":"@angular/cli","ecosystem":"npm","requirements":"^11.2.4","direct":true,"kind":"development","optional":false},{"id":2161041398,"package_name":"@angular/compiler-cli","ecosystem":"npm","requirements":"^11.2.4","direct":true,"kind":"development","optional":false},{"id":2161041399,"package_name":"@angular/language-service","ecosystem":"npm","requirements":"^11.2.4","direct":true,"kind":"development","optional":false},{"id":2161041400,"package_name":"@types/jasmine","ecosystem":"npm","requirements":"^3.6.0","direct":true,"kind":"development","optional":false},{"id":2161041401,"package_name":"@types/jasminewd2","ecosystem":"npm","requirements":"^2.0.8","direct":true,"kind":"development","optional":false},{"id":2161041402,"package_name":"@types/node","ecosystem":"npm","requirements":"^12.11.1","direct":true,"kind":"development","optional":false},{"id":2161041403,"package_name":"codelyzer","ecosystem":"npm","requirements":"^6.0.0","direct":true,"kind":"development","optional":false},{"id":2161041404,"package_name":"jasmine","ecosystem":"npm","requirements":"^3.5.0","direct":true,"kind":"development","optional":false},{"id":2161041405,"package_name":"jasmine-core","ecosystem":"npm","requirements":"^3.6.0","direct":true,"kind":"development","optional":false},{"id":2161041406,"package_name":"jasmine-spec-reporter","ecosystem":"npm","requirements":"^5.0.0","direct":true,"kind":"development","optional":false},{"id":2161041407,"package_name":"karma","ecosystem":"npm","requirements":"^5.2.3","direct":true,"kind":"development","optional":false},{"id":2161041408,"package_name":"karma-chrome-launcher","ecosystem":"npm","requirements":"^3.1.0","direct":true,"kind":"development","optional":false},{"id":2161041409,"package_name":"karma-coverage","ecosystem":"npm","requirements":"^2.0.3","direct":true,"kind":"development","optional":false},{"id":2161041410,"package_name":"karma-jasmine","ecosystem":"npm","requirements":"^4.0.0","direct":true,"kind":"development","optional":false},{"id":2161041411,"package_name":"karma-jasmine-html-reporter","ecosystem":"npm","requirements":"^1.5.0","direct":true,"kind":"development","optional":false},{"id":2161041412,"package_name":"protractor","ecosystem":"npm","requirements":"^7.0.0","direct":true,"kind":"development","optional":false},{"id":2161041413,"package_name":"ts-node","ecosystem":"npm","requirements":"^7.0.0","direct":true,"kind":"development","optional":false},{"id":2161041414,"package_name":"tslint","ecosystem":"npm","requirements":"^6.1.0","direct":true,"kind":"development","optional":false},{"id":2161041415,"package_name":"typescript","ecosystem":"npm","requirements":"~4.1.5","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"python/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-20T11:30:36.488Z","updated_at":"2022-08-20T11:30:36.488Z","repository_link":"https://gitlab.com/shyft-os/shyft/blob/master/python/requirements.txt","dependencies":[{"id":2161042936,"package_name":"python","ecosystem":"pypi","requirements":"\u003e=3.6","direct":true,"kind":"runtime","optional":false},{"id":2161042937,"package_name":"pyyaml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042938,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042939,"package_name":"netcdf4","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042940,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042941,"package_name":"requests","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042942,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042943,"package_name":"coverage","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042944,"package_name":"pip","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042945,"package_name":"shapely","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042946,"package_name":"pyproj","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2161042947,"package_name":"openssl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"python/setup.py","sha":null,"kind":"manifest","created_at":"2022-08-20T11:30:36.765Z","updated_at":"2022-08-20T11:30:36.765Z","repository_link":"https://gitlab.com/shyft-os/shyft/blob/master/python/setup.py","dependencies":[{"id":2161043144,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":16.02374453110894,"created_at":"2026-04-03T15:44:06.243Z","updated_at":"2026-07-24T02:00:43.376Z","avatar_url":null,"language":null,"category":"Energy Systems","sub_category":"Energy Markets","monthly_downloads":806,"total_dependent_repos":1,"total_dependent_packages":0,"readme":"# Shyft – Framework for Energy-Market Modelling\n\nHigh-performance framework for **time-series storage, analysis, and modelling**\nof **hydrological and energy-market systems**.\n\n[![Documentation](https://img.shields.io/badge/docs-shyft--doc-blue)](https://shyft-os.gitlab.io/shyft-doc/index.html)\n[![Discussion](https://img.shields.io/badge/discussion-google--group-blue)](https://groups.google.com/forum/#!forum/shyft)\n[![License](https://img.shields.io/badge/license-LGPLv3-blue.svg)](LICENSE)\n\n---\n\n## Overview\n\n**Shyft** is a cross-platform framework built around **high-performance\ntime-series storage and analysis**, providing the computational foundation\nfor **hydrological forecasting and energy-market modelling**.\n\n\nThe project originated at **Statkraft** in collaboration with the\n**University of Oslo – Department of Geosciences**, and is today used in\n**operational energy-sector environments**, including **24×7 systems** within\nStatkraft’s Energy Management division.\n\n\nShyft combines:\n\n- a **high-performance C++ core**\n- a **Python orchestration layer**\n- **scalable compute and cache microservices**\n- **enterprise-grade time-series and model storage**\n- **model-driven system architecture**\n\nThe framework was created through close interdisciplinary collaboration\nand continues to enable cooperation between:\n\n- domain experts\n- researchers\n- software engineers\n- operational IT teams\n\nwhile maintaining the performance and robustness required for operational energy systems.\n\n---\n\n## Architecture\n\n![Energy Market Model](./doc/image/shyft_energy_market_model.jpg)\n\n*Figure crafted by Christine Schei Liland*\n\nShyft provides a modular platform composed of interoperable components\nthat can be deployed together or separately depending on the operational need.\n\nThese components include:\n\n- high-performance **time-series services**\n- distributed **DTSS compute services**\n- **hydrological forecasting models**\n- **energy-market models**\n- Python-based orchestration and analysis tools\n\nThis modular structure supports **scalable microservice deployments**\nand enables packaging strategies that minimize dependencies and image sizes.\n\n---\n\n## Key Capabilities\n\n### Model-Centric Time-Series Platform\n\nShyft follows a **model-centric architecture** where domain models\n(such as hydrology systems or energy-market models) are decorated with\ntime-series attributes and symbolic expressions.\n\nThe time-series engine provides:\n\n- strongly typed time-series objects\n- symbolic expressions\n- lazy evaluation\n- distributed execution\n- persistent time-series storage\n\n### Distributed Time-Series Services (DTSS)\n\nThe **Distributed Time-Series Service (DTSS)** provides scalable\nserver-side evaluation of time-series expressions, including:\n\n- distributed time-series evaluation\n- high-performance in-memory caching\n- websocket-based APIs\n- real-time subscriptions\n- replication between deployments\n\n### Scalable Algorithm Execution\n\nShyft separates **domain models** from the **execution of algorithms**,\nallowing simulations, forecasts, and analytical workflows to scale\nindependently from the modelling layer.\n\nThis architecture enables **multiple algorithms to operate on the same\ndomain models**, allowing different simulation, forecasting, or\noptimization methods to be applied **without coupling the models to a\nspecific algorithm implementation**.\n\nDistributed compute services execute algorithms on shared time-series\ndata and domain models, with results attached back to the models for\nanalysis and decision support.\n\n### Hydrological Forecasting\n\nShyft contains hydrological modelling tools designed for operational\nforecasting environments, supporting distributed hydrological models\nand uncertainty analysis.\n\n### Energy-Market Modelling\n\nThe energy-market framework enables modelling of:\n\n- power grid topology\n- hydropower systems\n- production units\n- contracts and portfolios\n- operational constraints\n\nThe modelling framework allows researchers, vendors, and operators to\nintegrate proprietary optimization and simulation algorithms.\n\n---\n\n## Documentation\n\nFull documentation is available at:\n\nhttps://shyft-os.gitlab.io/shyft-doc/\n\nThe documentation includes:\n\n- system architecture\n- installation guides\n- Python API reference\n- time-series engine documentation\n- hydrology modelling\n- energy-market modelling\n- developer guides\n- release and contribution workflow\n\n---\n\n## Supported Platforms\n\nShyft packages are automatically built and tested through the GitLab CI pipeline.\n\nPrimary development and CI testing platforms:\n\n- **Arch Linux**\n- **Fedora**\n- **Windows (MSYS / MinGW)** *(legacy support for existing deployments)*\n\nShyft can generally be built on **any modern Linux distribution** with an up-to-date toolchain and the required dependencies (C++ compiler, CMake, and libraries).\n\n### Distribution Repositories\n\nPrebuilt Shyft packages are available through distribution-specific repositories:\n\n - Arch Linux: https://archlinux.helset.gotdns.org\n - Fedora-43: https://fedora.helset.gotdns.org\n - Fedora-44: https://fedora44.helset.gotdns.org\n - MSYS2 (ucrt64) : https://msys2.helset.gotdns.org\n\nThese repositories provide GPG-signed binary packages built from tagged releases using the documented Shyft release process.\nInstall and verification instructions for each distro is provided on the links above.\n\nThe repositories are currently operated as part of the project’s release infrastructure.\n\nRefer to the documentation for the Shyft release process, run-books and installation instructions:\nhttps://shyft-os.gitlab.io/shyft-doc/\n\n---\n\n## Security and Supply-Chain Transparency\n\nShyft emphasizes **software supply-chain security** and operational reliability.\n\nThe project uses practices including:\n\n- verified GPG-signed commits\n- signed release artifacts\n- provenance metadata\n- transparent dependency management\n- preference for distro-maintained packages\n- reproducible build pipelines\n\nThese practices support safe deployment in operational environments.\n\nFor background on secure open-source development practices, the following resources provide useful guidance:\n\n- **Linux Foundation — Developing and Evaluating Secure Open Source Software (OSS)**  \n  https://events.linuxfoundation.org/wp-content/uploads/2021/07/Developing-Secure-Open-Source-Software-OSS.pdf\n\n- **Open Source Security Foundation (OpenSSF)**  \n  https://openssf.org/\n\n- **SLSA — Supply-chain Levels for Software Artifacts**  \n  https://slsa.dev/\n\n---\n\n## Contributing\n\nShyft development follows a structured workflow involving:\n\n- **Owners**\n- **Maintainers**\n- **Contributors**\n\nDevelopment happens on the `next-shyft-version` branch and follows a documented release process.\n\nContribution guidelines, development setup instructions, and workflow details are available in:\n\nProject wiki  \nhttps://gitlab.com/shyft-os/shyft/-/wikis\n\nand specific https://gitlab.com/shyft-os/shyft/-/wikis/How-to/Contribute\n\n---\n\n## Container Images\n\nThe CI pipeline produces container images used for building and testing Shyft.\n\nThese images are available in the GitLab container registry:\n\nhttps://gitlab.com/shyft-os/shyft/container_registry\n\n---\n\n## Authors and Project Stewardship\n\nShyft was initially developed by **Statkraft** in cooperation with the  \n**University of Oslo – Department of Geosciences (UiO)**.\n\nThe project originated from a small, highly experienced interdisciplinary team\ncombining expertise in applied mathematics, hydrological science,\nenergy-system modelling, and software engineering.\n\nThe overall **architectural design and C++ core implementation** were primarily developed by:\n\n- **Sigbjørn Helset** \u003cSigbjorn.Helset@statkraft.com\u003e\n- **Ola Skavhaug** \u003cola@xal.no\u003e\n\nThe initial **Python orchestration layer, data pipelines, and modelling integration**\nwere primarily developed by:\n\n- **John F. Burkhart** \u003cjohn.burkhart@geo.uio.no\u003e\n- **Yisak Sultan Abdella** \u003cyisaksultan.abdella@statkraft.com\u003e\n\nThe hydrological modelling algorithms and their composition into operational\nmodelling stacks were strongly influenced by the hydrological research\nexperience of **John F. Burkhart** and **Yisak Sultan Abdella**, and by the\nresearch collaboration with the **University of Oslo Department of Geosciences**.\n\nThrough this collaboration, UiO researchers have contributed important\nhydrological algorithms and modelling components used within Shyft.\n\nNotable contributions include the **SnowTiles algorithm** developed by\n**Felix Matt**, and work by **Olga Silantyeva** on **TIN-based hydrological\nmodelling research** and the integration of the **FSM2 snow model**.\nUiO researchers have also actively used Shyft in research and operational\nstudies, providing valuable feedback that helped shape the evolving\nhydrology orchestration framework built on the high-performance C++\ncore and RocksDB-based services.\n\nThis complementary combination of **software architecture, operational\nengineering, and hydrological science** formed the foundation of the Shyft\nframework.\n\nThe project is currently maintained by a group of contributors and maintainers.\n\n\nProject stewardship and long-term continuity are ensured by:\n\n- **Sigbjørn Helset**, who acts as the **active owner** of the project and maintains the core development and build infrastructure.\n\nSignificant development, research collaboration, and operational deployment of Shyft has been supported by:\n\n- **Statkraft AS**\n- **University of Oslo – Department of Geosciences (UiO)**\n- **Expert Analytics (XAL)** and its contributors\n\n\n\nA complete list of contributors can be found in the **Contributors** section\nbelow and in the Git history.\n\nCopyright (C)\n\nSigbjørn Helset (SiH)  \nJohn F. Burkhart (JFB)  \nOla Skavhaug (OS)  \nYisak Sultan Abdella (YAS)  \nStatkraft AS\n\n---\n\n## Contributors\n\nProject contributors include:\n\n- Sigbjørn Helset \u003csigbjorn.helset@gmail.com\u003e\n- Ola Skavhaug \u003cola@xal.no\u003e\n- John Burkhart \u003cjohn.burkhart@geo.uio.no\u003e\n- Yisak Sultan Abdella \u003cyisaksultan.abdella@statkraft.com\u003e\n- Felix Matt \u003cf.n.matt@geo.uio.no\u003e\n- Olga Silantyeva \u003colga.silantyeva@geo.uio.no\u003e\n- Francesc Alted \u003cfaltet@gmail.com\u003e\n- Ludovic Pochon-Guérin \u003cludovic.pochon-guerin@statkraft.com\u003e\n- Eivind Lycke Melvær \u003ceivindlyche.melvaer@statkraft.com\u003e\n- Cecilie Granerød \u003ccecilie.granerod@statkraft.com\u003e\n- Andreas Slyngstad \u003candreas@xal.no\u003e\n- Bernardo de Olivera \u003cbernardo@xal.no\u003e\n- Diako Darian \u003cdiako@xal.no\u003e\n- Eivind Aarnæs \u003ceivind@xal.no\u003e\n- Vinzenz Gregor Eck \u003cvinzenz@xal.no\u003e\n- Mindaugas Pivoras \u003cmindaugas.pivoras@statkraft.com\u003e\n- Roar Emaus \u003croar@xal.no\u003e\n- Trygve Bærland \u003ctrygve@xal.no\u003e\n- Albert O. Nybø \u003cAlbert.Overskeid.Nybo@statkraft.com\u003e\n- Gry M. Tveten \u003cgry@xal.no\u003e\n- Magne Nordaas \u003cmagne@xal.no\u003e\n- Christine Schei Liland \u003cChristineShei.Liland@statkraft.com\u003e\n- Jens Askgaard \u003cjens.askgaard@statkraft.com\u003e\n- Ibrahim Rahmani \u003cibrahim@xala.no\u003e\n- Anders Kjeldsen \u003canders.kjeldsen@statkraft.com\u003e\n- Alexander Becker \u003calexander.becker@statkraft.com\u003e\n- Sarah Dahmen \u003csarah.dahmen21@gmail.com\u003e\n- Fabio Zeiser \u003cfabio.zeiser@statkraft.com\u003e\n- Stian Angelsen \u003cstian.angelsen@statkraft.com\u003e\n- Joseph Bradshaw \u003cjoseph.bradshaw@statkraft.com\u003e\n- Ole Andreas Grønn Ramsdal \u003coleandreasgronn.ramsdal@statkraft.com\u003e\n- John Eivind Rømma Helset \u003chttps://gitlab.com/jehelset\u003e\n- Benedikt Reinartz \u003chttps://gitlab.com/filmor\u003e\n- Paul Christoph Bätzing-Rosenvinge \u003cpaulchristoph.batzing-rosenvinge@statkraft.com\u003e\n- Eilidh Troup \u003chttps://gitlab.com/eilidht\u003e\n- Petar Kutlesic \u003chttps://gitlab.com/petar.kutlesic\u003e\n- Christian Vaugelade-Kilaas \u003chttps://gitlab.com/christianvk\u003e\n- Jakob Boye Løland Ørbæk \u003chttps://gitlab.com/jakobboye\u003e\n- Jiyoung Kim \u003chttps://gitlab.com/jiyoung.kim\u003e\n- Lars Skodje \u003chttps://gitlab.com/lars.storm.skodje\u003e\n- Ana Budisa \u003chttps://gitlab.com/ana.budisa\u003e\n- Igor Vidic \u003chttps://gitlab.com/igor.vidic1\u003e\n- Lewis Rae Blake \u003chttps://gitlab.com/lewis.rae.blake\u003e\n---\n\n## License\n\nShyft is released under the **LGPL v3 license**.\n\nSee the `LICENSE` file.\n\n---\n\n## Citation\n\nIf you use Shyft in hydrology-related research, please cite:\n\nBurkhart, J. F., Matt, F. N., Helset, S., Sultan Abdella, Y., Skavhaug, O., and Silantyeva, O.\n\n*Shyft v4.8: a framework for uncertainty assessment and distributed hydrologic modeling for operational hydrology*\n\nGeosci. Model Dev., 14, 821–842, 2021  \nhttps://doi.org/10.5194/gmd-14-821-2021","funding_links":[],"readme_doi_urls":["https://doi.org/10.5194/gmd-14-821-2021"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/350487","html_url":"https://ost.ecosyste.ms/projects/350487"}