{"id":13833243,"url":"https://github.com/frodofine/ferricyanide","last_synced_at":"2026-02-18T22:37:57.432Z","repository":{"id":76514387,"uuid":"258332723","full_name":"frodofine/ferricyanide","owner":"frodofine","description":"A simple molecular visualization platform designed for WASM","archived":false,"fork":false,"pushed_at":"2021-01-24T03:53:47.000Z","size":117,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-20T16:39:46.764Z","etag":null,"topics":["chemistry","molecular-visualization","rust","viewer","wasm"],"latest_commit_sha":null,"homepage":"","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/frodofine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2020-04-23T21:17:02.000Z","updated_at":"2024-05-03T10:49:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"0379667c-bf41-4cde-bea4-80f7374078fa","html_url":"https://github.com/frodofine/ferricyanide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/frodofine/ferricyanide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frodofine%2Fferricyanide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frodofine%2Fferricyanide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frodofine%2Fferricyanide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frodofine%2Fferricyanide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frodofine","download_url":"https://codeload.github.com/frodofine/ferricyanide/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frodofine%2Fferricyanide/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502650,"owners_count":23618664,"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":["chemistry","molecular-visualization","rust","viewer","wasm"],"created_at":"2024-08-04T11:00:43.904Z","updated_at":"2026-02-18T22:37:57.397Z","avatar_url":"https://github.com/frodofine.png","language":"Rust","funding_links":[],"categories":["visual"],"sub_categories":[],"readme":"# Ferricyanide\n\n![Integration](https://github.com/frodofine/ferricyanide/workflows/Integration/badge.svg)\n\nMolecular viewer targeting WebAssembly (WASM).\n\n**Ferricyanide** is available under the MIT/Apache-2.0 licenses. It is based off of source code published by [Chinedu Francis Nwafili](https://github.com/chinedufn/webgl-water-tutorial). His project is used as an extendable base (most notably the canvas and shader systems).\n\n## Goals\n\nThis project has no real goals other than as an experiment in WASM and WebGL development. For this experiment, the following sub-goals should be followed.\n\n## Demonstration\n\nA demo of ferricyanide is given [here](https://frodofine.github.com/ferricyanide). It shows the conversion of a JSmol-based page into a page which uses the ferricyanide WASM application to visualize the molecules. The original site is displayed [here](https://chopralab.github.io/n_sulfonylimine_reactions/cyclic.html?USE=WEBGL). Note that this project was made by the developers of ferricyanide and may not utilize the best practices for deploying JSmol.\n\n### Extendability\n\n### Code size\n\nSince WASM is the target, compiled code size is a consideration. Currently, the release mode *.wasm* file clocks in under 100Kb without compression, and ideally it should not grow beyond 500Kb. Therefore, features which add significant code size should be made optional using build configurations. Additionally, libraries which increase code-size significantly should be avoided.\n\n## How to build\n\nFirst, install [rustup](https://rustup.rs/) for your respective operating system and make sure `cargo` is in your `PATH`. If you are on Linux or macOS, clone the project and built it using the following commands. On Windows, install [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) and clone the directory.\n\n```bash\ncurl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh\ngit clone https://github.com/frodofine/ferricyanide.git\ncd ferricyanide\n```\n\nTo build with `cargo-make`, use the following commands in the *ferricyanide* directory. Note that the use of `cargo-make` is optional, but this tool is recommended for development as `cargo-make` can host a local webserver and watch for changes as to rebuild the project automatically.\n\n```bash\ncargo install cargo-make\ncargo make build\n# Watch for changes in the source code and auto rebuild\ncargo make watch\n```\n\nAlternatively, you can use `wasm-pack` directly. The `--target web` option causes *ferricyanide* to be built as an **ES6** module without the need to use *webpack* to deploy the application in a browser. Other options are available and should be supported without modification to the **Rust** code. See [the official documentation](https://rustwasm.github.io/docs/wasm-bindgen/examples/without-a-bundler.html) for details.\n\n```bash\nwasm-pack build --target web --out-name package\n```\n\nThis will populate the `pkg` directory with files starting with *package*. These files are required to deploy the viewer on a server. You can host a local server with the following command:\n\n```bash\ncargo make start\n```\n\nIf done in the default *ferricyanide* directory, then it will host a simple demo application at [localhost:8000](http://localhost:8000).\n\n## Why the name\n\nFerricyanide is a compound used in photo development to add a sepia tone. It is a **Rust** colored *compound*, so it's a perfect name for a package that visualizes molecules.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrodofine%2Fferricyanide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrodofine%2Fferricyanide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrodofine%2Fferricyanide/lists"}