{"id":28369737,"url":"https://github.com/sourcerer-io/rdfs","last_synced_at":"2025-10-29T11:25:36.433Z","repository":{"id":95976779,"uuid":"121058249","full_name":"sourcerer-io/rdfs","owner":"sourcerer-io","description":"Distributed File Sync built in Ruby","archived":false,"fork":false,"pushed_at":"2018-02-24T00:31:26.000Z","size":27,"stargazers_count":62,"open_issues_count":0,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-29T05:44:43.371Z","etag":null,"topics":["filesync","ruby","sharing","sharing-data"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcerer-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-02-10T22:02:43.000Z","updated_at":"2024-03-16T00:04:57.000Z","dependencies_parsed_at":"2023-04-26T12:00:32.803Z","dependency_job_id":null,"html_url":"https://github.com/sourcerer-io/rdfs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sourcerer-io/rdfs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcerer-io%2Frdfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcerer-io%2Frdfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcerer-io%2Frdfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcerer-io%2Frdfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcerer-io","download_url":"https://codeload.github.com/sourcerer-io/rdfs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcerer-io%2Frdfs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260865075,"owners_count":23074559,"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":["filesync","ruby","sharing","sharing-data"],"created_at":"2025-05-29T05:40:17.472Z","updated_at":"2025-10-29T11:25:36.413Z","avatar_url":"https://github.com/sourcerer-io.png","language":"Ruby","readme":"\n# Ruby Distributed File Sync (RDFS)\n\nCopyright (C) 2018 Sourcerer, All Rights Reserved\nWritten by Robert W. Oliver II - \u003crobert@cidergrove.com\u003e\n\n## OVERVIEW\n\nRDFS monitors for changes within a folder. Once these are detected, the files are SHA256 hashed and that hash, along with last-modified time is stored in an SQLite3 database. Upon changes, these hashes are updated.\n\nOther machines running RDFS can connect to one another and receive these updates, therefore keeping multiple directories across different machines in sync.\n\nSince the SHA256 hash is calculated, the system avoids saving the same block of data twice. This provides a basic data de-duplication scheme.\n\nWhile RDFS is functional, it is not an ideal construction of a high performance, production-ready distrubted file system. Its primary focus is to demonstrate the concepts involved in such system and serve as a teaching tool for these techniques.\n\n## INSTALL\n\nTo install requirements on a Debian based system, run:\napt install ruby-sqlite3 ruby-daemons\n\n## USE\n\nruby rdfsctl.rb start\n\n## LICENSE\n\nThis software is licensed under the GPLv3 or later.\n\n## BUGS\n\nThere are several known bugs in this release:\n\n* Adding more than 2 nodes may produce unpredictable results\n* Compression for transfer was disabled due to Zlib issues\n* If database is out of sync with filesystem, unpredictable results will occur\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcerer-io%2Frdfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcerer-io%2Frdfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcerer-io%2Frdfs/lists"}