{"id":19226555,"url":"https://github.com/forticheprod/fls","last_synced_at":"2026-03-16T17:32:41.511Z","repository":{"id":65667368,"uuid":"586564811","full_name":"forticheprod/fls","owner":"forticheprod","description":"A simple commandline tool to list files and pack frames sequences","archived":false,"fork":false,"pushed_at":"2025-04-07T07:58:11.000Z","size":73326,"stargazers_count":14,"open_issues_count":14,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T18:16:51.280Z","etag":null,"topics":["animation","bls","command-line-tool","exr","frames","framesequence","imagesequence","pyseq","rvls","sequence","vfx"],"latest_commit_sha":null,"homepage":"https://forticheprod.github.io/fls/","language":"Rust","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/forticheprod.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":"2023-01-08T15:34:04.000Z","updated_at":"2025-03-31T10:03:23.000Z","dependencies_parsed_at":"2023-10-02T12:14:47.708Z","dependency_job_id":"da2972c2-bf1e-4f0c-bd7a-59f75378eb99","html_url":"https://github.com/forticheprod/fls","commit_stats":null,"previous_names":["forticheprod/fls","doubleailes/fls"],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forticheprod%2Ffls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forticheprod%2Ffls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forticheprod%2Ffls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forticheprod%2Ffls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/forticheprod","download_url":"https://codeload.github.com/forticheprod/fls/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249980786,"owners_count":21355503,"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":["animation","bls","command-line-tool","exr","frames","framesequence","imagesequence","pyseq","rvls","sequence","vfx"],"created_at":"2024-11-09T15:19:11.648Z","updated_at":"2026-03-16T17:32:41.504Z","avatar_url":"https://github.com/forticheprod.png","language":"Rust","funding_links":[],"categories":["Libraries"],"sub_categories":["File path"],"readme":"# f[rame]ls\n\n## Description\n\n**framels** project is intent to deliver a *ls* command inspired by *bls* from\n[Buf Compagnie](https://buf.com/) or more recently *rvls* from [RV](https://www.autodesk.com/products/flow-production-tracking/rv).\n\n## User Guide\n\nThe user guide is [here](https://forticheprod.github.io/fls/).\n\n## Installation\n\n### Pre-compile bin\n\nYou can download the last version \u003chttps://github.com/forticheprod/fls/releases\u003e.\n\n#### Windows\n\nSupport Windows 10 x86\n\n#### Linux\n\nSupport current linux distro tested Fedora 37, Centos 7, Manjaro 22\n\n### From Cargo\n\nYou can install via [\u003chttps://crates.io/\u003e](https://crates.io/crates/framels)\n\nRun `cargo install framels`\n\n## Usage\n\n### Help\n\nRun `fls --help`\n\n### basic_listing\n\nRun `fls` to list your current directory.\n\n![demo](./images/fls_demo.gif)\n\n```bash\n$ touch aaa.001.tif aaa.002.tif aaa.003.tif aaa.004.tif aaa.005.tif foo_bar.exr\n$ fls\nfoo_bar.exr\naaa.***.tif@1-5\n```\n\nRun `fls /path/of/directory/` to list a specific directory.\n\nExemple with the sample set **big** at the root level of the repo\n\n```bash\n$ fls samples/big/\nRenderPass_Pcam_1_*****.exr@0-96\nRenderPass_Beauty_1_*****.exr@0-96\nRenderPass_IndDiffuse_1_*****.exr@0-96\nRenderPass_Ncam_1_*****.exr@0-41,43-96\nRenderPass_Specular_1_*****.exr@0-96\nRenderPass_Id_1_*****.exr@0-96\nRenderPass_Occlusion_1_***.exr@74\nRenderPass_Reflection_1_*****.exr@0-96\nRenderPass_SpecularRim_1_*****.exr@0-96\nRenderPass_Ncam_1_00042.exr.bkp\nRenderPass_DiffuseKey_1_*****.exr@0-96\nRenderPass_Diffuse_1_*****.exr@0-96\nRenderPass_Occlusion_1_*****.exr@0-73,75-96\n```\n\n### Exr Metadata\n\nInspired by rvls. You can use `-l`\n\nRun `fls -l` to list your current directory and display EXR informations.\n\nRun `fls -l /path/of/directory/` to list a specific directory and display EXR informations.\n\n```bash\n$ fls -l samples/big/\nRenderPass_Beauty_1_*****.exr@0-96\nRenderPass_Occlusion_1_*****.exr@0-73,75-96\nRenderPass_Id_1_*****.exr@0-96\nRenderPass_Occlusion_1_***.exr@74\nRenderPass_Ncam_1_00042.exr.bkp\nRenderPass_SpecularRim_1_*****.exr@0-96\nRenderPass_DiffuseKey_1_*****.exr@0-96\nRenderPass_Pcam_1_*****.exr@0-96\nRenderPass_Reflection_1_*****.exr@0-96\nRenderPass_Specular_1_*****.exr@0-96\nRenderPass_Diffuse_1_*****.exr@0-96\nRenderPass_IndDiffuse_1_*****.exr@0-96\nRenderPass_Ncam_1_*****.exr@0-41,43-96\nsamples/big/RenderPass_Occlusion_1_074.exr layer #0 w x h: 320 x 156; channels: A,B,G,R, bit depth: F16\nNot an exr\nsamples/big/RenderPass_Beauty_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,Plane_Beauty.A,Plane_Beauty.B,Plane_Beauty.G,Plane_Beauty.R,R,Spheres_Beauty.A,Spheres_Beauty.B,Spheres_Beauty.G,Spheres_Beauty.R, bit depth: F16\nsamples/big/RenderPass_DiffuseKey_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_Reflection_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_Pcam_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F32\nsamples/big/RenderPass_Occlusion_1_00000.exr layer #0 w x h: 320 x 139; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_Id_1_00000.exr layer #0 w x h: 140 x 52; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_Diffuse_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_Specular_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_Ncam_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_IndDiffuse_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F16\nsamples/big/RenderPass_SpecularRim_1_00000.exr layer #0 w x h: 320 x 143; channels: A,B,G,R, bit depth: F16\n```\n\n### Recursive\n\nYou can use a recursive approch of the directory and sub-folder\n\nYou can use `-r`\n\nRun `fls -r /path/of/directory/` to list a specific directory and his\nsubfolder\n\n```bash\n$ fls -r .\\samples\\\n.\\samples\\big\\RenderPass_Diffuse_1_*****.exr@0-96\n.\\samples\\big\\RenderPass_Ncam_1_00042.exr.bkp\n.\\samples\\big\\RenderPass_DiffuseKey_1_*****.exr@0-96\n.\\samples\\big\\RenderPass_Occlusion_1_*****.exr@0-73,75-96\n.\\samples\\big\\RenderPass_Occlusion_1_***.exr@74\n.\\samples\\small\\foo_bar.exr\n.\\samples\\big\\RenderPass_SpecularRim_1_*****.exr@0-96\n.\\samples\\big\\RenderPass_Pcam_1_*****.exr@0-96\n.\\samples\\big\\RenderPass_Ncam_1_*****.exr@0-41,43-96\n.\\samples\\small\n.\\samples\\big\n.\\samples\\big\\RenderPass_Id_1_*****.exr@0-96\n.\\samples\\big\\RenderPass_Specular_1_*****.exr@0-96\n.\\samples\\big\\RenderPass_Beauty_1_*****.exr@0-96\n.\\samples\n.\\samples\\big\\RenderPass_IndDiffuse_1_*****.exr@0-96\n.\\samples\\big\\RenderPass_Reflection_1_*****.exr@0-96\n.\\samples\\small\\aaa.***.tif@1-5\n```\n\n### Tree\n\nYou can use a tree approch of the directory and sub-folder\n\nYou can use `-t`\n\nAlways use `-r` to use the tree mode.\n\nRun `fls -t -r /path/of/directory/` to list a specific directory and his\nsubfolder\n\n```bash\n$ fls -t -r .\\samples\\\n┗ \n    ┗ samples\n        ┗ big\n            ┗ RenderPass_Beauty_1_*****.exr@0-96\n            ┗ RenderPass_DiffuseKey_1_*****.exr@0-96\n            ┗ RenderPass_Diffuse_1_*****.exr@0-96\n            ┗ RenderPass_Id_1_*****.exr@0-96\n            ┗ RenderPass_IndDiffuse_1_*****.exr@0-96\n            ┗ RenderPass_Ncam_1_*****.exr@0-41,43-96\n            ┗ RenderPass_Ncam_1_00042.exr.bkp\n            ┗ RenderPass_Occlusion_1_*****.exr@0-73,75-96\n            ┗ RenderPass_Occlusion_1_***.exr@74\n            ┗ RenderPass_Pcam_1_*****.exr@0-96\n            ┗ RenderPass_Reflection_1_*****.exr@0-96\n            ┗ RenderPass_SpecularRim_1_*****.exr@0-96\n            ┗ RenderPass_Specular_1_*****.exr@0-96\n        ┗ mega\n            ┗ response_1689510067951.json\n        ┗ small\n            ┗ aaa.***.tif@1-5\n            ┗ foo_bar.exr\n```\n\n## Benchmarks\n\n![fast](https://camo.githubusercontent.com/e8a50ee9600d66095bf0046f06e65ef8fe0675a40122db2a801d1f66e595add6/68747470733a2f2f692e726564642e69742f74376e733971746235676838312e6a7067)\n\nUsing the sample **big**, some time comparaison with [rvls](https://www.shotgridsoftware.com/rv/download/), [lsseq](https://github.com/jrowellfx/lsseq) or [lss](https://github.com/rsgalloway/pyseq).\n\nHere benchmarks done with [hyperfine](https://github.com/sharkdp/hyperfine) with a warmup of 3 iterations\n\n### Simple file listing\n\n| Tool |`fls 0.7.7`| `rvls 2023.0.1`|`lsseq -l`| `lss`    |\n|------|-----------|----------------|----------|----------|\n| Time | 3.9 ms    | 85.9 ms        | 75.5 ms  | 61.9 ms  |\n\n```bash\nhyperfine -N --warmup 3 'target/release/fls ./samples/big/'\nBenchmark 1: target/release/fls ./samples/big/\n  Time (mean ± σ):       4.7 ms ±   0.7 ms    [User: 4.9 ms, System: 1.7 ms]\n  Range (min … max):     4.3 ms …  11.5 ms    560 runs\n```\n\n```bash\nhyperfine -N --warmup 3 '~/Downloads/rv-centos7-x86-64-2023.0.1/bin/rvls ./samples/big/'\nBenchmark 1: ~/Downloads/rv-centos7-x86-64-2023.0.1/bin/rvls ./samples/big/\n  Time (mean ± σ):      23.3 ms ±   7.1 ms    [User: 20.1 ms, System: 2.3 ms]\n  Range (min … max):    19.4 ms …  51.5 ms    75 runs\n```\n\n### Exr reading\n\n| Tool | `fls -l` | `rvls -l`|\n|------|----------|----------|\n| Time | 7.3 ms   | 95.8 ms  |\n\n## Issues and PR\n\nIssues, feedback and PR are welcome\n\nSome hard rules, i won't trade off\n\n- Windows compatible\n- Speed\n- UTF8 friendly\n- Pure Rust\n\n## Thanks\n\nThanks to:\n\n- Ben Legros for the indirect mentorship over a beer ( or many )\n- Djl for the idea\n- Tcherno\n- Mercenaries Eng for the best render engine ( samples/big render with [Guerilla render](http://guerillarender.com/) )\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforticheprod%2Ffls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforticheprod%2Ffls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforticheprod%2Ffls/lists"}