{"id":19258821,"url":"https://github.com/lucascompython/music_sync","last_synced_at":"2025-06-22T08:35:58.945Z","repository":{"id":249193386,"uuid":"830731655","full_name":"lucascompython/music_sync","owner":"lucascompython","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-14T13:16:05.000Z","size":141,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-23T18:16:41.403Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/lucascompython.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":"2024-07-18T21:49:35.000Z","updated_at":"2024-08-14T13:16:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"33b23424-dcd9-46b3-8010-b0dc4512b8f6","html_url":"https://github.com/lucascompython/music_sync","commit_stats":null,"previous_names":["lucascompython/music_sync"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lucascompython/music_sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucascompython%2Fmusic_sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucascompython%2Fmusic_sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucascompython%2Fmusic_sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucascompython%2Fmusic_sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucascompython","download_url":"https://codeload.github.com/lucascompython/music_sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucascompython%2Fmusic_sync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261263254,"owners_count":23132553,"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":"2024-11-09T19:14:30.761Z","updated_at":"2025-06-22T08:35:53.928Z","avatar_url":"https://github.com/lucascompython.png","language":"Rust","readme":"# Music Sync\n\nIt's a simple tool that I made to sync my music library between my devices.\n\n## How does it work?\n\nThere is a server that hosts the music library and clients that sync the music library with the server.  \nThe clients may also update the music library on the server.\n\n## Security\n\nBecause the clients can update the music library on the server and thus write an important amount of data, there is a token authentication system.  \nKeep in mind that the data is not encrypted, because I don't really care about it, and I'm on a budget regarding my server.  \nGenerate a token with `gen_token.sh` or `gen_token.ps1` and put it in the `config.conf` file on the server and the clients.\n\n## Things\n\nFor now the server always has the files loaded into memory. It can be a problem if the music library is too big. But can also be a good thing because, for example, my server is a 2009 laptop with a slow HDD.  \nI'll probably add a way to load the files on demand.\n\nI'll also benchmark packing the files together vs keeping them separated and having the client send multiple requests in parallel.\n\nAnd I'll add compression to the files, probably with `zstd` or `lz4`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucascompython%2Fmusic_sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucascompython%2Fmusic_sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucascompython%2Fmusic_sync/lists"}