{"id":24443638,"url":"https://github.com/endlessm/mogwai","last_synced_at":"2026-03-04T00:07:06.551Z","repository":{"id":39579709,"uuid":"113890043","full_name":"endlessm/mogwai","owner":"endlessm","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-09T19:47:53.000Z","size":544,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-03-26T15:42:55.536Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/endlessm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-11T17:47:42.000Z","updated_at":"2024-06-11T12:48:35.000Z","dependencies_parsed_at":"2023-12-12T23:29:05.228Z","dependency_job_id":"ab4d6c3a-e428-496a-88e8-83aea5776635","html_url":"https://github.com/endlessm/mogwai","commit_stats":null,"previous_names":[],"tags_count":152,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/endlessm%2Fmogwai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/endlessm%2Fmogwai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/endlessm%2Fmogwai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/endlessm%2Fmogwai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/endlessm","download_url":"https://codeload.github.com/endlessm/mogwai/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248633656,"owners_count":21136896,"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":[],"created_at":"2025-01-20T22:16:59.053Z","updated_at":"2026-03-04T00:07:06.523Z","avatar_url":"https://github.com/endlessm.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Mogwai\n======\n\nMogwai allows systems to take advantage of reduced cost bandwidth at off-peak\ntimes of day. It provides a monitoring daemon which checks bandwidth usage, a\nscheduling daemon which prioritises downloads to minimise cost, and a tariff\nlibrary which describes different data plans.\n\nAll the library APIs are currently unstable and are likely to change wildly.\n\nArchitecture\n------------\n\nThe architecture of Mogwai is designed to allow applications and services to\nvoluntarily schedule their downloads according to a system-wide download policy.\nThe policy can take things like the user’s internet tariff, the metered status\nof the current connection, or the amount of battery power left, into account. In\nfuture, it might also take into account the download history, for example by\nchecking the user is not near their limit of free download capacity for this\ntime period.\n\nThis policy is implemented by `mogwai-scheduled`, a system daemon which\napplications can talk to over D-Bus (it takes the well-known name\n`com.endlessm.MogwaiSchedule1`). If an application wants to do a download, it\ncreates a ‘schedule entry’ in Mogwai, containing details about the download\n(such as its estimated size). The application then waits for `mogwai-scheduled`\nto set the schedule entry’s `DownloadNow` property to true — at that point, the\napplication is free to start the download.\n\nNote that the download happens inside the application’s address space:\n`mogwai-scheduled` cannot actually do any network operations itself. This is\ndeliberate: providing support for every kind of network request and\nauthentication that an application might want would be too difficult and error\nprone; and doing network operations from a system daemon would provide an easy\nescalation vector for any system compromise.\n\n`mogwai-scheduled` may set `DownloadNow` to false again in future, and at that\npoint the application must pause its download (if it hasn’t already finished).\nThis is typically because a higher-priority download has pre-empted it.\n\nDependencies\n------------\n\n * gio-2.0 ≥ 2.57.1\n * glib-2.0 ≥ 2.57.1\n * gobject-2.0 ≥ 2.57.1\n * libsoup-3.0 or libsoup-2.4 ≥ 2.42\n * systemd\n\nLicensing\n---------\n\nThe daemon components of Mogwai are licensed under the LGPL. The libraries are\nalso licensed under the LGPL. See COPYING for more details.\n\nBugs\n----\n\nBug reports and patches should be reported by e-mail to one of the authors or\nfiled in GitLab:\n\nhttps://gitlab.freedesktop.org/pwithnall/mogwai\n\nContact\n-------\n\n * Philip Withnall \u003cwithnall@endlessm.com\u003e\n * https://gitlab.freedesktop.org/pwithnall/mogwai\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fendlessm%2Fmogwai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fendlessm%2Fmogwai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fendlessm%2Fmogwai/lists"}