{"id":18443216,"url":"https://github.com/mkroening/edu-sync","last_synced_at":"2025-04-07T23:31:45.948Z","repository":{"id":49129708,"uuid":"378147468","full_name":"mkroening/edu-sync","owner":"mkroening","description":"A command line application for synchronizing the contents of Moodle instances to your computer.","archived":false,"fork":false,"pushed_at":"2025-02-23T15:13:28.000Z","size":305,"stargazers_count":27,"open_issues_count":7,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-23T02:03:55.250Z","etag":null,"topics":["downloader","moodle","rust","synchronization"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkroening.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-06-18T12:44:39.000Z","updated_at":"2025-02-23T15:13:31.000Z","dependencies_parsed_at":"2025-02-14T14:22:35.067Z","dependency_job_id":"05075a74-d0f3-49b1-8b60-773277b4a0a2","html_url":"https://github.com/mkroening/edu-sync","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkroening%2Fedu-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkroening%2Fedu-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkroening%2Fedu-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkroening%2Fedu-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkroening","download_url":"https://codeload.github.com/mkroening/edu-sync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247749865,"owners_count":20989708,"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":["downloader","moodle","rust","synchronization"],"created_at":"2024-11-06T06:46:41.195Z","updated_at":"2025-04-07T23:31:45.935Z","avatar_url":"https://github.com/mkroening.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Edu Sync\n\n[![CI](https://github.com/mkroening/edu-sync/actions/workflows/ci.yml/badge.svg)](https://github.com/mkroening/edu-sync/actions/workflows/ci.yml)\n\nEdu Sync is a command line application that synchronizes the contents of Moodle instances to your computer.\n\nIt accesses the Moodle instance via the Moodle mobile web services API, which is also used by the official Moodle mobile app.\nTo be able to use Edu Sync with a Moodle instance, the Moodle mobile web services must explicitly be enabled by the instance.\n\nThis application is written in Rust with a focus on speed.\nDownloads are performed concurrently, which is beneficial when syncing many small files.\n\n## Usage\n\nYou can view more detailed help information with:\n\n```bash\n$ edu-sync-cli help\n```\n\n1.  Add an account:\n\n    *   Using username and password:\n\n        ```bash\n        $ edu-sync-cli add --username \u003cusername\u003e https://example.com ~/download-dir\n        # You will be prompted to enter your password\n        ```\n\n    *   Using a token for the Moodle mobile web service.\n        This could be obtained in some instances inside preferences/security keys.\n        It could also be obtained using  [SSO parameter on Moodle-DL](https://github.com/C0D3D3V/Moodle-DL) as shown [here](https://github.com/mkroening/edu-sync/issues/9#issuecomment-2446564050)\n\n        ```bash\n        $ edu-sync-cli add https://example.com ~/download-dir\n        # You will be prompted to enter your token\n        ```\n\n2.  Fetch available courses (populates the config file with courses):\n\n    ```bash\n    $ edu-sync-cli fetch\n    ```\n\n3.  Configure which courses to sync in the config file. Get the config path with:\n\n    ```bash\n    $ edu-sync-cli config\n    ```\n\n4.  Sync:\n\n    ```bash\n    $ edu-sync-cli sync\n    ```\n\n## Installation\n\nThe binary name for Edu Sync is `edu-sync-cli`.\n\n[Archives of precompiled binaries](https://github.com/mkroening/edu-sync/releases) for Edu Sync are available for Windows, macOS and Linux.\n\nIf you're an Arch Linux user, then you can install Edu Sync from the [Arch User Repository](https://aur.archlinux.org/packages/edu-sync/).\n\n## Licensing\n\nThis project is licensed under\n* The GNU General Public License v3.0 only ([LICENSE](LICENSE), or https://www.gnu.org/licenses/gpl-3.0.html)\n\n### Trademark Notice\n\nMoodle™ is a [registered trademark](https://moodle.com/trademarks/) of Moodle Pty Ltd in many countries. Edu Sync is not sponsored, endorsed, licensed by, or affiliated with Moodle Pty Ltd.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkroening%2Fedu-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkroening%2Fedu-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkroening%2Fedu-sync/lists"}