{"id":29210627,"url":"https://github.com/embarkstudios/tame-webpurify","last_synced_at":"2025-08-12T06:47:08.409Z","repository":{"id":153865908,"uuid":"630803078","full_name":"EmbarkStudios/tame-webpurify","owner":"EmbarkStudios","description":"💩 Small HTTP client for the Webpurify API following the sans-io approach 🦀","archived":false,"fork":false,"pushed_at":"2023-09-20T10:26:55.000Z","size":58,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-10T10:55:05.154Z","etag":null,"topics":[],"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/EmbarkStudios.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-21T07:30:45.000Z","updated_at":"2024-01-29T11:40:27.000Z","dependencies_parsed_at":"2025-07-02T21:07:22.939Z","dependency_job_id":"46313206-2945-4924-bf90-99c3edd4053f","html_url":"https://github.com/EmbarkStudios/tame-webpurify","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":"EmbarkStudios/opensource-template","purl":"pkg:github/EmbarkStudios/tame-webpurify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Ftame-webpurify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Ftame-webpurify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Ftame-webpurify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Ftame-webpurify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmbarkStudios","download_url":"https://codeload.github.com/EmbarkStudios/tame-webpurify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbarkStudios%2Ftame-webpurify/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270016583,"owners_count":24512963,"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","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-07-02T21:07:19.255Z","updated_at":"2025-08-12T06:47:08.385Z","avatar_url":"https://github.com/EmbarkStudios.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Allow this file to not have a first line heading --\u003e\n\u003c!-- markdownlint-disable-file MD041 no-emphasis-as-heading --\u003e\n\n\u003c!-- inline html --\u003e\n\u003c!-- markdownlint-disable-file MD033 --\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# `💩 tame-webpurify`\n\n**Super simple client for the WebPurify REST API**\n\n\u003c!--- FIXME: Update crate, repo and CI workflow names here! Remove any that are not relevant ---\u003e\n[![Embark](https://img.shields.io/badge/embark-open%20source-blueviolet.svg)](https://embark.dev)\n[![Embark](https://img.shields.io/badge/discord-embark-%237289da.svg?logo=discord)](https://discord.gg/dAuKfZS)\n[![Crates.io](https://img.shields.io/crates/v/tame-webpurify.svg)](https://crates.io/crates/tame-webpurify)\n[![Docs](https://docs.rs/tame-webpurify/badge.svg)](https://docs.rs/tame-webpurify)\n[![dependency status](https://deps.rs/repo/github/EmbarkStudios/tame-webpurify/status.svg)](https://deps.rs/repo/github/EmbarkStudios/tame-webpurify)\n\n[//]: # ([![Git Docs]\u0026#40;https://img.shields.io/badge/git%20main%20docs-published-blue\u0026#41;]\u0026#40;https://embarkstudios.github.io/presser/presser/index.html\u0026#41;)\n[//]: # ([![Build status]\u0026#40;https://github.com/EmbarkStudios/tame-webpurify/workflows/CI/badge.svg\u0026#41;]\u0026#40;https://github.com/EmbarkStudios/physx-rs/actions\u0026#41;)\n\u003c/div\u003e\n\n## What is this?\n\nAn incredibly small library to interact with the https://www.webpurify.com/documentation/ REST API.\n\n`tame-webpurify` takes the [sans-io](https://sans-io.readthedocs.io/) approach and builds up the request objects for you so that you can use whatever library you're used to for the actual HTTP transport.\n\nPlease be advised that the source code will contain some swearing etc. Can't test a profanity filter / content-moderation API \nwithout actually acting like a jerk.\n\nSee the example code on how to use it `tame-webpurify` together with [reqwest](https://crates.io/crates/reqwest)\n## Examples\n\nBuild and run the provided example:\n\n```bash\n$ cargo run --example profanity -- --apikey \u003cyour-webpurify-api-key\u003e\n=\u003e \n \n{\n  status: 200,\n  version: HTTP/2.0,\n  headers: { ... },\n  body: {\n    \"rsp\": {\n      \"@attributes\": {\n        \"stat\": \"ok\",\n        \"rsp\": \"0.062274932861328\"\n      },\n      \"method\": \"webpurify.live.replace\",\n      \"format\": \"rest\",\n      \"found\": \"3\",\n      \"text\": \"**** you man! call me at +**********3 or email me at ****.****@*******.***\",\n      \"api_key\": \"some-api-key\"\n    }\n  }\n}\n```\n\n## Supported methods\n\nThe following WebPurify methods are currently available:\n\n```rust\npub enum Method {\n    /// webpurify.live.check\n    Check,\n    /// webpurify.live.check\n    Replace(String),\n}\n```\n\n[//]: # (## TEMPLATE INSTRUCTIONS)\n\n[//]: # ()\n[//]: # (1. Create a new repository under EmbarkStudios using this template.)\n\n[//]: # (1. **Title:** Change the first line of this README to the name of your project, and replace the sunflower with an emoji that represents your project. 🚨 Your emoji selection is critical.)\n\n[//]: # (1. **Badges:** In the badges section above, change the repo name in each URL. If you are creating something other than a Rust crate, remove the crates.io and docs badges \u0026#40;and feel free to add more appropriate ones for your language\u0026#41;.)\n\n[//]: # (1. **CI:** In `./github/workflows/` rename `rust-ci.yml` \u0026#40;or the appropriate config for your language\u0026#41; to `ci.yml`. And go over it and adapt it to work for your project)\n\n[//]: # (    - If you aren't using or customized the CI workflow, also see the TODO in `.mergify.yml`)\n\n[//]: # (    - If you want to use the automatic rustdoc publishing to github pages for git main, see `rustdoc-pages.yml`)\n\n[//]: # (1. **Issue \u0026 PR Templates**: Review the files in `.github/ISSUE_TEMPLATE` and `.github/pull_request_template`. Adapt them)\n\n[//]: # (to suit your needs, removing or re-wording any sections that don't make sense for your use case.)\n\n[//]: # (1. **CHANGELOG.md:** Change the `$REPO_NAME` in the links at the bottom to the name of the repository, and replace the example template lines with the actual notes for the repository/crate.)\n\n[//]: # (1. **release.toml:** in `./release.toml` change the `$REPO_NAME` to the name of the repository)\n\n[//]: # (1. **Cleanup:** Remove this section of the README and any unused files \u0026#40;such as configs for other languages\u0026#41; from the repo.)\n\n## Contributing\n\n[![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-v1.4-ff69b4.svg)](CODE_OF_CONDUCT.md)\n\nWe welcome community contributions to this project.\n\nPlease read our [Contributor Guide](CONTRIBUTING.md) for more information on how to get started.\nPlease also read our [Contributor Terms](CONTRIBUTING.md#contributor-terms) before you make any contributions.\n\nAny contribution intentionally submitted for inclusion in an Embark Studios project, shall comply with the Rust standard licensing model (MIT OR Apache 2.0) and therefore be dual licensed as described below, without any additional terms or conditions:\n\n### License\n\nThis contribution is dual licensed under EITHER OF\n\n- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\nFor clarity, \"your\" refers to Embark or any other licensee/user of the contribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembarkstudios%2Ftame-webpurify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembarkstudios%2Ftame-webpurify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembarkstudios%2Ftame-webpurify/lists"}