{"id":21630114,"url":"https://github.com/virtualritz/jupiterfilecache","last_synced_at":"2025-03-18T21:23:39.544Z","repository":{"id":33437006,"uuid":"37082325","full_name":"virtualritz/jupiterfilecache","owner":"virtualritz","description":"General purpose file cache class.","archived":false,"fork":false,"pushed_at":"2015-06-08T18:30:23.000Z","size":236,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-24T23:28:47.148Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/virtualritz.png","metadata":{"files":{"readme":"README.rst","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":"2015-06-08T17:39:05.000Z","updated_at":"2021-03-17T23:32:28.000Z","dependencies_parsed_at":"2022-09-12T15:02:49.160Z","dependency_job_id":null,"html_url":"https://github.com/virtualritz/jupiterfilecache","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualritz%2Fjupiterfilecache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualritz%2Fjupiterfilecache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualritz%2Fjupiterfilecache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualritz%2Fjupiterfilecache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/virtualritz","download_url":"https://codeload.github.com/virtualritz/jupiterfilecache/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244307254,"owners_count":20431995,"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-25T02:09:48.597Z","updated_at":"2025-03-18T21:23:39.516Z","avatar_url":"https://github.com/virtualritz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Jupiter File Cache\n==================\n\nJupiterFileCache (JFC) is a general purpose, multi location, multi process, thread safe* file read \u0026 write cache library.\n\nThis is a C++ library that allows caching files in remote (network) locations onto the local client to speed up future\naccesses to these files.\nThis reduces network traffic but also, more importantly, disk access on the server. Modern network infrastructures are\nrarely the problem, but a server's disks often don't cope well when hundreds of clients read large files, often repeatedly,\nby querying small pieces of data, all at the same time.\n\nIt comes with a `SWIG \u003chttp://www.swig.org/\u003e`_ interface to be easily accessible through scripting languages (e.g Lua,\nPython) without the need to use a C++ compiler.\n\nC++ API docs are `here \u003chttp://jupiterfilecache.googlecode.com/hg/doc/html/index.html\u003e`_.\n\nUse case example\n----------------\n\nAs a example use-case we provide an `RSL shadeop \u003chttp://en.wikipedia.org/wiki/Shadeop\u003e`_ implementation, modeled\nafter the automatic network cache in `DNA research's 3Delight \u003chttp://www.3delight.com/\u003e`_.\nIt allows caching files like textures, point clouds or other heavy data, on a render farm client, automatically,\nby simply specifying the cache location with an environment variable, or in the RIB (with an option).\nIn your shaders you can use the cacheFile() shadeop.  It should work with any renderer that has an RSL shadeop API\nbut was tested \u0026 used in production with `Pixar's PhotoRealistic RenderMan \u003chttp://renderman.pixar.com/\u003e`_.\n\nSo, instead of::\n\n  texture( foo )\n\n\nyou just do::\n\n  texture( cacheFile( foo ) )\n\n\nAnd *voilà*, it's cached for you :)\n\nNotes\n.....\n\n* you can write-cache files that usually stress a server (because they arrive in bits, over extended periods, many at the same time -- e.g. image buckets/tiles from a 3D render).\n\nFuture Development\n..................\n\nContributors are welcome! Here's what we would like to do:\n\n* VEX shadeop for use in Houdini's Mantra or directly, in VOPs \n* Ri filter for caching (delayed) RIB archives\n\nJFC is brought to you by `/*jupiter jazz*/ \u003chttp://www.jupiter-jazz.com/\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtualritz%2Fjupiterfilecache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirtualritz%2Fjupiterfilecache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtualritz%2Fjupiterfilecache/lists"}