{"id":19347668,"url":"https://github.com/datarhei/core-client-go","last_synced_at":"2025-09-12T02:14:03.946Z","repository":{"id":37212201,"uuid":"379875055","full_name":"datarhei/core-client-go","owner":"datarhei","description":"An API client library for datarhei Core in Go","archived":false,"fork":false,"pushed_at":"2024-09-09T12:56:44.000Z","size":3783,"stargazers_count":6,"open_issues_count":1,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-23T05:41:42.889Z","etag":null,"topics":["ffmpeg","ffmpeg-server","rest-api","streaming-server","videostreaming"],"latest_commit_sha":null,"homepage":"https://datarhei.com","language":"Go","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/datarhei.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}},"created_at":"2021-06-24T09:40:45.000Z","updated_at":"2024-11-18T10:15:42.000Z","dependencies_parsed_at":"2023-10-05T00:16:02.027Z","dependency_job_id":null,"html_url":"https://github.com/datarhei/core-client-go","commit_stats":{"total_commits":30,"total_committers":3,"mean_commits":10.0,"dds":"0.23333333333333328","last_synced_commit":"e2e1959213865fbc3cc533ade4e7d848b2d14356"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/datarhei/core-client-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarhei%2Fcore-client-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarhei%2Fcore-client-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarhei%2Fcore-client-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarhei%2Fcore-client-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datarhei","download_url":"https://codeload.github.com/datarhei/core-client-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarhei%2Fcore-client-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274743038,"owners_count":25341132,"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","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ffmpeg","ffmpeg-server","rest-api","streaming-server","videostreaming"],"created_at":"2024-11-10T04:17:32.938Z","updated_at":"2025-09-12T02:14:03.908Z","avatar_url":"https://github.com/datarhei.png","language":"Go","readme":"# core-client-go\n\nA golang client for the `github.com/datarhei/core` API.\n\n---\n\n-   [Quick Start](#quick-start)\n-   [API definitions](#api-definitions)\n    -   [General](#general)\n    -   [Config](#config)\n    -   [Disk filesystem](#disk-filesystem)\n    -   [In-memory filesystem](#in-memory-filesystem)\n    -   [Log](#log)\n    -   [Metadata](#metadata)\n    -   [Metrics](#metrics)\n    -   [Process](#process)\n    -   [RTMP](#rtmp)\n    -   [Session](#session)\n    -   [Skills](#skills)\n-   [Versioning](#versioning)\n-   [Contributing](#contributing)\n-   [Licence](#licence)\n\n## Quick Start\n\nExample for retrieving a list of all processes:\n\n```\nimport \"github.com/datarhei/core-client-go/v16\"\n\nclient, err := coreclient.New(coreclient.Config{\n    Address: \"https://example.com:8080\",\n    Username: \"foo\",\n    Password: \"bar\",\n})\nif err != nil {\n    ...\n}\n\nprocesses, err := client.ProcessList(coreclient.ProcessListOptions{})\nif err != nil {\n    ...\n}\n```\n\n## API definitions\n\n### General\n\n-   `GET` /api\n\n    ```golang\n    About() api.About\n    ```\n\n### Config\n\n-   `GET` /api/v3/config\n\n    ```golang\n    Config() (api.Config, error)\n    ```\n\n-   `PUT` /api/v3/config\n\n    ```golang\n    ConfigSet(config api.ConfigSet) error\n    ```\n\n-   `GET` /api/v3/config/reload\n\n    ```golang\n    ConfigReload() error\n    ```\n\n### Disk filesystem\n\n-   `GET` /api/v3/fs/disk\n\n    ```golang\n    DiskFSList(sort, order string) ([]api.FileInfo, error)\n    ```\n\n-   `HEAD` /api/v3/fs/disk/{path}\n\n    ```golang\n    DiskFSHasFile(path string) bool\n    ```\n\n-   `GET` /api/v3/fs/disk/{path}\n\n    ```golang\n    DiskFSGetFile(path string) (io.ReadCloser, error)\n    ```\n\n-   `DELETE` /api/v3/fs/disk/{path}\n\n    ```golang\n    DiskFSDeleteFile(path string) error\n    ```\n\n-   `PUT` /api/v3/fs/disk/{path}\n    ```golang\n    DiskFSAddFile(path string, data io.Reader) error\n    ```\n\n### In-memory filesystem\n\n-   `GET` /api/v3/fs/mem\n\n    ```golang\n    MemFSList(sort, order string) ([]api.FileInfo, error)\n    ```\n\n-   `HEAD` /api/v3/fs/mem/{path}\n\n    ```golang\n    MemFSHasFile(path string) bool\n    ```\n\n-   `GET` /api/v3/fs/mem/{path}\n\n    ```golang\n    MemFSGetFile(path string) (io.ReadCloser, error)\n    ```\n\n-   `DELETE` /api/v3/fs/mem/{path}\n\n    ```golang\n    MemFSDeleteFile(path string) error\n    ```\n\n-   `PUT` /api/v3/fs/mem/{path}\n    ```golang\n    MemFSAddFile(path string, data io.Reader) error\n    ```\n\n### Log\n\n-   `GET` /api/v3/log\n\n    ```golang\n    Log() ([]api.LogEvent, error)\n    ```\n\n### Metadata\n\n-   `GET` /api/v3/metadata/{key}\n\n    ```golang\n    Metadata(id, key string) (api.Metadata, error)\n    ```\n\n-   `PUT` /api/v3/metadata/{key}\n    ```golang\n    MetadataSet(id, key string, metadata api.Metadata) error\n    ```\n\n### Metrics\n\n-   `GET` /api/v3/metrics\n\n    ```golang\n    MetricsList() ([]api.MetricsDescription, error)\n    ```\n\n-   `POST` /api/v3/metrics\n\n    ```golang\n    Metrics(query api.MetricsQuery) (api.MetricsResponse, error)\n    ```\n\n### Process\n\n-   `GET` /api/v3/process\n\n    ```golang\n    ProcessList(opts ProcessListOptions) ([]api.Process, error)\n    ```\n\n-   `POST` /api/v3/process\n\n    ```golang\n    ProcessAdd(p api.ProcessConfig) error\n    ```\n\n-   `GET` /api/v3/process/{id}\n\n    ```golang\n    Process(id string, filter []string) (api.Process, error)\n    ```\n\n-   `PUT` /api/v3/process/{id}\n\n    ```golang\n    ProcessUpdate(id string, p api.ProcessConfig) error\n    ```\n\n-   `DELETE` /api/v3/process/{id}\n\n    ```golang\n    ProcessDelete(id string) error\n    ```\n\n-   `PUT` /api/v3/process/{id}/command\n\n    ```golang\n    ProcessCommand(id, command string) error\n    ```\n\n-   `GET` /api/v3/process/{id}/probe\n\n    ```golang\n    ProcessProbe(id string) (api.Probe, error)\n    ```\n\n-   `GET` /api/v3/process/{id}/config\n\n    ```golang\n    ProcessConfig(id string) (api.ProcessConfig, error)\n    ```\n\n-   `GET` /api/v3/process/{id}/report\n\n    ```golang\n    ProcessReport(id string) (api.ProcessReport, error)\n    ```\n\n-   `GET` /api/v3/process/{id}/state\n\n    ```golang\n    ProcessState(id string) (api.ProcessState, error)\n    ```\n\n-   `GET` /api/v3/process/{id}/metadata/{key}\n\n    ```golang\n    ProcessMetadata(id, key string) (api.Metadata, error)\n    ```\n\n-   `PUT` /api/v3/process/{id}/metadata/{key}\n    ```golang\n    ProcessMetadataSet(id, key string, metadata api.Metadata) error\n    ```\n\n### RTMP\n\n-   `GET` /api/v3/rtmp\n\n    ```golang\n    RTMPChannels() ([]api.RTMPChannel, error)\n    ```\n\n### SRT\n\n-   `GET` /api/v3/srt\n\n    ```golang\n    SRTChannels() (api.SRTChannels, error)\n    ```\n\n### Session\n\n-   `GET` /api/v3/session\n\n    ```golang\n    Sessions(collectors []string) (api.SessionsSummary, error)\n    ```\n\n-   `GET` /api/v3/session/active\n    ```golang\n    SessionsActive(collectors []string) (api.SessionsActive, error)\n    ```\n\n### Skills\n\n-   `GET` /api/v3/skills\n\n    ```golang\n    Skills() (api.Skills, error)\n    ```\n\n-   `GET` /api/v3/skills/reload\n    ```golang\n    SkillsReload() error\n    ```\n\n### Widget\n\n-   `GET` /api/v3/widget\n\n    ```golang\n    WidgetProcess(id string) (api.WidgetProcess, error)\n    ```\n\n## Versioning\n\nThe version of this module is according to which version of the datarhei Core API\nyou want to connect to. Check the branches to find out which other versions are\nimplemented. If you want to connect to an API version 12, you have to import the client\nmodule of the version 12, i.e. `import \"github.com/datarhei/core-client-go/v12\"`.\n\nThe latest implementation is on the `main` branch.\n\n## Contributing\n\nFound a mistake or misconduct? Create a [issue](https://github.com/datarhei/core-client-go/issues) or send a pull-request.\nSuggestions for improvement are welcome.\n\n## Licence\n\n[MIT](https://github.com/datarhei/core-client-go/blob/main/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarhei%2Fcore-client-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatarhei%2Fcore-client-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarhei%2Fcore-client-go/lists"}