{"id":19467179,"url":"https://github.com/squaresapp/fila","last_synced_at":"2025-04-25T11:30:50.737Z","repository":{"id":220739154,"uuid":"752476113","full_name":"squaresapp/fila","owner":"squaresapp","description":"File system layer with multiple backends for different JavaScript environments.","archived":false,"fork":false,"pushed_at":"2024-02-06T21:32:38.000Z","size":38,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T06:16:28.285Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/squaresapp.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-02-04T00:17:44.000Z","updated_at":"2024-02-12T14:57:18.000Z","dependencies_parsed_at":"2024-02-04T00:29:35.260Z","dependency_job_id":"b4b720e1-52a5-48cd-a06e-2d22212a2dfe","html_url":"https://github.com/squaresapp/fila","commit_stats":null,"previous_names":["squaresapp/fila"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresapp%2Ffila","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresapp%2Ffila/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresapp%2Ffila/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squaresapp%2Ffila/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squaresapp","download_url":"https://codeload.github.com/squaresapp/fila/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250808066,"owners_count":21490613,"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-10T18:33:50.387Z","updated_at":"2025-04-25T11:30:50.361Z","avatar_url":"https://github.com/squaresapp.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fila\n\nFile system layer with multiple backends.\n\n## Installation\n\nThe first step is to install Fila through npm, or by pulling one of the scripts directly from cdnjs (look in the npm package, there are specific compilations for each backend, as well as one that includes all the backends and uses the one that is relevant to the current environment).\n\n```\nnpm install @squaresapp/fila\n```\n\nOnce that is done, there are some additional steps that need to happen to support each environment. Fila purposely omits some dependencies that you'll need to install yourself, in order to keep the dependencies low and the multi-environment potential high.\n\n## Capacitor\n\nThe Capacitor backend is a wrapper over the `@capacitor/filesystem` module, so no further dependencies are needed.\n\n## Node.JS\n\nThe Node.JS backend mostly works out of the box, but if you want to use the `fila.watch()` method, this depends on `chokaidar`. If you want to use file watching on Node.js, you'll need to:\n\n```\nnpm install chokidar\n```\n\n## Tauri (1.5)\n\nThe Tauri backend meta data methods depend on plugin `fs-extra` and `fs-watch`.You can install these plugins here:\n\n[https://github.com/tauri-apps/tauri-plugin-fs-extra](https://github.com/tauri-apps/tauri-plugin-fs-extra)\n\n[https://github.com/tauri-apps/tauri-plugin-fs-watch](https://github.com/tauri-apps/tauri-plugin-fs-watch)\n\nYou'll also need to configure your `allowlist` in your `tauri.conf.json` file. Here is a segment of a sample to `tauri.conf.json` file to just allow everything in order to get something working (not terribly secure):\n\n```json\n{\n\t\"tauri\": {\n\t\t\"allowlist\": {\n\t\t\t\"fs\": {\n\t\t\t\t\"scope\": [\"*/**\"]\n\t\t\t},\n\t\t\t\"path\": {\n\t\t\t\t\"all\": true\n\t\t\t},\n\t\t}\n\t}\n}\n```\n\nSee [this Tauri issue](https://github.com/tauri-apps/tauri/issues/4130) for more information on how to configure your allow list.\n\nNote that these instructions are for Tauri 1.5. Tauri 2.0 uses a completely different system and will likely need a separate Fila backend in order to operate over it's file system plugin system.\n\n## Web\n\nThe Web backend uses the [Keyva](https://github.com/paul-go/Keyva) IndexedDB layer. Make sure Keyva is visible globally, or install Keyva with npm via:\n\n```\nnpm install keyvajs\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquaresapp%2Ffila","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsquaresapp%2Ffila","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquaresapp%2Ffila/lists"}