{"id":15971146,"url":"https://github.com/glurp/s2s","last_synced_at":"2025-08-10T08:43:58.611Z","repository":{"id":141875068,"uuid":"2249091","full_name":"glurp/s2s","owner":"glurp","description":"p2p for ruby snipplets applications","archived":false,"fork":false,"pushed_at":"2011-08-29T10:56:25.000Z","size":140,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-01T02:43:49.219Z","etag":null,"topics":["p2p","ruby","sharing"],"latest_commit_sha":null,"homepage":"https://raubarede.wordpress.com/2011/08/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glurp.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}},"created_at":"2011-08-22T14:42:04.000Z","updated_at":"2020-12-10T08:26:14.000Z","dependencies_parsed_at":"2023-03-12T08:01:25.306Z","dependency_job_id":null,"html_url":"https://github.com/glurp/s2s","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/glurp/s2s","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glurp%2Fs2s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glurp%2Fs2s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glurp%2Fs2s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glurp%2Fs2s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glurp","download_url":"https://codeload.github.com/glurp/s2s/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glurp%2Fs2s/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269698858,"owners_count":24461198,"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-08-10T02:00:08.965Z","response_time":71,"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":["p2p","ruby","sharing"],"created_at":"2024-10-07T20:08:06.145Z","updated_at":"2025-08-10T08:43:58.543Z","avatar_url":"https://github.com/glurp.png","language":"Ruby","readme":"S2S : Shoer to Shoers\n=====================\n\nPeer 2 peer directory share, for ruby (Shoes) snippets\n\nPresentation\n============\n\nA simple p2p application, made for distribute little (free) ruby applications.\nGUI is made with Green-Shoes\n\nP2p part is based on an old 9 lines LOC showed by _why.\nSo this tool is made in souvenir of him.\n\n\nUsage\n=====\n\nRun a client with green-shoes Gui  :\n\n```\n  \u003e ruby s2s.rb\n```\n\nRun a client without gui: in CLI (no dependency, only ruby 1.9)\n\n```\n  \u003e ruby p2p.rb\n```\n\nRun a 'server' (no dependency , only ruby 1.9) :\n\n```\n  \u003e ruby p2p.rb  shoerdev server  druby://\u003cmyip\u003e:50500  druby://homeregis.dyndns.org:50500  ...other servers....\n```\n\nmake your own farm of p2p :\n\n```\n  \u003e ruby p2p.rb  shoerdev server  druby://localhost:50500  \n  \u003e cd A ; ruby ../p2p.rb  shoerdev client  druby://localhost:50500  \n  \u003e cd B ; ruby ../s2s.rb  shoerdev  druby://localhost:50500    \n```\n\nPrinciples\n=========\n\nThe application try to maintain in each client the same directory content :\n\n* sub directory,\n* ruby files\n* images rasters\n* .txt? .html .... files\n\nSo all clients on the net should have a directory which have exactly the same content.\nfiles types and sizes are limited (size limit: 10MB).\n\nIf someone copy a file in his shared-directory, this file will be copied to all other members.\n\n2 types of applications :\n\n* *server* : a application which memorize the list of applications actives, and can give this list to anyone\n* *client* : a application share his files with all other client. \n   a *client* is *server* : it keep a list of all client, so a client is a server too.\n\nSo servers are useful only at clients startup.\n\nA server is running at homeregis.dyndns.org, so by default, all client take this one as server,\nbut anybody can run server, it will enter in the ring.\n\n\nRequirements\n============\n\nRuby (1.9.2 for gui),\n\nGreen-shoes for GUI\n\nChipmunk Windows (so linux is supported but with less fun...)\n\nDispose of an access to Internet without proxy \n(but it  work on a isolated LAN, run a default server in the LAN)\n\nIf firewall :\n\n``` \n Create a rule for authorisation on port 50500..50510 for TCP/UDP (for your process ruby)\n```\n\nIf NAT (box adsl)\n\n```\n Create a redirection rule for ports 50500.50510 fom/to host/ruby process\n```\n\nRefs\n====\n\nhttp://regisaubarede.posterous.com/tag/p2p\n\nhttps://github.com/ashbb/green_shoes\n\nStatus\n======\n\nReady for experimentations \n\n- Chipmunk in gs : ok, patched (in s2s.rb) for limit the number of dynamic shape\n- firewall and NAT : serveur should signale the issue to the client\n- Watch ui memory ;)\n- todo : a gui alternative with OCRA ?...\n- define a protocol for delete/rename files and directorys : vote ?\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglurp%2Fs2s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglurp%2Fs2s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglurp%2Fs2s/lists"}