{"id":23364522,"url":"https://github.com/fission-codes/basquiat","last_synced_at":"2025-04-10T12:52:47.917Z","repository":{"id":94737757,"uuid":"252824136","full_name":"fission-codes/basquiat","owner":"fission-codes","description":"Interplanetary Image Metadata Resizer","archived":false,"fork":false,"pushed_at":"2020-09-03T10:32:14.000Z","size":59,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-03T04:56:18.230Z","etag":null,"topics":["ipfs","ipld"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fission-codes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"open_collective":"fission"}},"created_at":"2020-04-03T19:42:46.000Z","updated_at":"2022-05-05T22:37:11.000Z","dependencies_parsed_at":"2023-07-29T06:15:16.637Z","dependency_job_id":null,"html_url":"https://github.com/fission-codes/basquiat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"fission-codes/project-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission-codes%2Fbasquiat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission-codes%2Fbasquiat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission-codes%2Fbasquiat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fission-codes%2Fbasquiat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fission-codes","download_url":"https://codeload.github.com/fission-codes/basquiat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248132408,"owners_count":21053033,"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":["ipfs","ipld"],"created_at":"2024-12-21T13:16:33.566Z","updated_at":"2025-04-10T12:52:47.900Z","avatar_url":"https://github.com/fission-codes.png","language":"Rust","funding_links":["https://opencollective.com/fission"],"categories":[],"sub_categories":[],"readme":"![](https://github.com/fission-suite/PROJECTNAME/raw/master/assets/logo.png?sanitize=true)\n\n# Basquiat - Image Resizing for ipfs\n\n[![Build Status](https://travis-ci.org/fission-suite/PROJECTNAME.svg?branch=master)](https://travis-ci.org/fission-suite/PROJECTNAME)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/fission-suite/blob/master/LICENSE)\n[![Maintainability](https://api.codeclimate.com/v1/badges/44fb6a8a0cfd88bc41ef/maintainability)](https://codeclimate.com/github/fission-suite/PROJECTNAME/maintainability)\n[![Built by FISSION](https://img.shields.io/badge/⌘-Built_by_FISSION-purple.svg)](https://fission.codes)\n[![Discord](https://img.shields.io/discord/478735028319158273.svg)](https://discord.gg/zAQBDEq)\n[![Discourse](https://img.shields.io/discourse/https/talk.fission.codes/topics)](https://talk.fission.codes)\n\nBasquiat is a CLI tool that performs batch image resizing operations and returns an ipfs CID that links to the original,\nwith metadata pointing to all generated versions using a general-purpose schema.\n# QuickStart\n### Installing ipfs\n\nSee [here](https://docs.ipfs.io/guides/guides/install/).\n\n### Setting up rust\nTo install rustup on Linux or MacOS \n```shell script\n$ curl https://sh.rustup.rs -sSf | sh\n```\n\n### Setting up dependencies\nThe `libvips` library needs to be installed :\n\nOn mac os\n```shell script\nbrew install libvips`\n```\n\nOn Ubuntu\n```shell script\n\napt-get install libvips\n```\n\n### Cloning, compiling and running\n\n```shell script\n$ git clone git@github.com:fission-suite/basquiat.git\n$ cd basquiat\n$ ipfs daemon \u003e ipfsd_log.txt #The ipfs daemon must be running!\n$ cargo run -q -- \u003cpath_to_image\u003e\n```\n\n`cargo run` builds and runs in one command. You can always find the executable \nat `target/debug/basquiat`.\n\n### Exploring the DAG\n\nBy default, a simple html page presents a list of the available versions at `\u003croot_cid\u003e/thumbnails.html`. This feature\ncan be disabled by a flag as detailed in the command's `--help` message.\n\n# Proposed metadata schema\n\nThe root CID points to the original version with named links to other sizes.\nA given size `WxH.jpg` has its CID linked to *three times* by the root node :\n```\n_xH.jpg\nWx_.jpg\nWxH.jpg\n```\n`W` and `X` are integers in pixel units.\n\nThis schema can be subsequently expanded to include transformations other than rescaling,\nusing an expandable syntax. For a given operation `c`, with parameters `A` and `B`, \nan operation on the given size `WxH.jpg` will also be linked to three times:\n```\n_xH.c-A-B.jpg\nWx_.c-A-B.jpg\nWxH.c-A-B.jpg\n```\n\nThis syntax is expandable to a sequence of operations by further concatenation.\nFor instance, the following could represent a file resized to a certain height `H`,\nthen cropped from the top (operation `ct`) to a certain height `Hp` then cropped from the left (`cl`) to a\ncertain width `Wp` :\n```\n_xH.ct-Hp.cl-Wp.jpg\n```\n\nThis specification will also be used to configure iimir.\n\n# Known issues\n\n- When original file size is too small, its data gets overwritten in the output dag\nby a smaller version. This is due to a [documented go-ipfs issue](https://github.com/ipfs/go-ipfs/issues/7190).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffission-codes%2Fbasquiat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffission-codes%2Fbasquiat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffission-codes%2Fbasquiat/lists"}