{"id":21215115,"url":"https://github.com/tooxo/wordcloud","last_synced_at":"2026-01-06T01:03:07.897Z","repository":{"id":149196648,"uuid":"611853282","full_name":"tooxo/wordcloud","owner":"tooxo","description":"☁ Flexible WordCloud implementation for 🦀 Rust","archived":false,"fork":false,"pushed_at":"2024-07-24T23:05:06.000Z","size":1554,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-29T17:38:58.571Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tooxo.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-03-09T17:16:57.000Z","updated_at":"2025-01-20T16:45:05.000Z","dependencies_parsed_at":"2024-07-25T00:58:48.025Z","dependency_job_id":"1d6b1ab2-551c-4e41-97ba-fca8e2727c22","html_url":"https://github.com/tooxo/wordcloud","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/tooxo%2Fwordcloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tooxo%2Fwordcloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tooxo%2Fwordcloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tooxo%2Fwordcloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tooxo","download_url":"https://codeload.github.com/tooxo/wordcloud/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245268277,"owners_count":20587588,"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-20T21:33:49.702Z","updated_at":"2026-01-06T01:03:02.859Z","avatar_url":"https://github.com/tooxo.png","language":"Rust","readme":"## WordCloud ☁\n![Crates.io Version](https://img.shields.io/crates/v/rs-wordcloud?link=https%3A%2F%2Fcrates.io%2Fcrates%2Frs-wordcloud)\n\n\n#### A simplified way to create Wordclouds in Rust.\n\n### Simple Example\n\n   ```rust\n   use wordcloud::*;\n   use wordcloud::font::*;\n\n   let mut font_data = Vec::from(include_bytes!(\"font.ttf\") as \u0026[u8]);\n   let font_set = FontSetBuilder::new()\n       .push(Font::from_data(\u0026mut font_data).unwrap())\n       .build();\n\n   let output_dimensions = Dimensions::from_wh(1000, 1000);\n   let wc = WordCloudBuilder::new()\n       .dimensions(output_dimensions)\n       .font(\u0026font_set)\n       .build()\n       .unwrap();\n\n   let input_text = io::read_string_from_file(\"input_text.txt\").unwrap();\n   let ranked = RankedWords::rank(input_text.split_whitespace().collect());\n\n   wc.write_content(ranked, 2000);\n   wc.export_rendered_to_file(\"output.svg\").unwrap();\n   ```\n\n## Using Stopwords\n\n   ```rust\n   use wordcloud::*;\n   use wordcloud::font::*;\n\n   // Create the default StopWords set using the \"stopwords\" crate feature\n   let stop_words = StopWords::default();\n\n   let input_text = io::read_string_from_file(\"input_text.txt\").unwrap();\n   let ranked = RankedWords::rank(\n       input_text\n           .split_whitespace()\n           // filter out the StopWords using the iterator function\n           // a similar named function also exists for rayon's ParallelIterators\n           .filter_stop_words(\u0026stop_words)\n           // filter out everything that is just a number\n           .filter(\n               |x| x.parse::\u003cf64\u003e().is_err()\n           )\n           .collect()\n   );\n\n   // ...\n   ```\n\n## Using Background Images\n\n   ```rust\n   use wordcloud::*;\n\n   // ...\n\n   let image = image::load_from_memory(test_image).expect(\"image load failed\");\n   let wc = WordCloudBuilder::new()\n       .dimensions(output_dimensions)\n       .font(\u0026font_set)\n       .image(\u0026image)\n       .build()\n       .unwrap();\n\n   // ...\n   ```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftooxo%2Fwordcloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftooxo%2Fwordcloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftooxo%2Fwordcloud/lists"}