💩 Small HTTP client for the Webpurify API following the sans-io approach 🦀

Overview

💩 tame-webpurify

Super simple client for the WebPurify REST API

Embark Embark Crates.io Docs dependency status

What is this?

An incredibly small library to interact with the https://www.webpurify.com/documentation/ REST API.

tame-webpurify takes the sans-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.

Please be advised that the source code will contain some swearing etc. Can't test a profanity filter / content-moderation API without actually acting like a jerk.

See the example code on how to use it tame-webpurify together with reqwest

Examples

Build and run the provided example:

$ cargo run --example profanity -- --apikey <your-webpurify-api-key>
=> 
 
{
  status: 200,
  version: HTTP/2.0,
  headers: { ... },
  body: {
    "rsp": {
      "@attributes": {
        "stat": "ok",
        "rsp": "0.062274932861328"
      },
      "method": "webpurify.live.replace",
      "format": "rest",
      "found": "3",
      "text": "**** you man! call me at +**********3 or email me at ****.****@*******.***",
      "api_key": "some-api-key"
    }
  }
}

Supported methods

The following WebPurify methods are currently available:

pub enum Method {
    /// webpurify.live.check
    Check,
    /// webpurify.live.check
    Replace(String),
}

Contributing

Contributor Covenant

We welcome community contributions to this project.

Please read our Contributor Guide for more information on how to get started. Please also read our Contributor Terms before you make any contributions.

Any 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:

License

This contribution is dual licensed under EITHER OF

at your option.

For clarity, "your" refers to Embark or any other licensee/user of the contribution.

Comments
  • Add response handling functions

    Add response handling functions

    Checklist

    • [x] I have read the Contributor Guide
    • [x] I have read and agree to the Code of Conduct
    • [x] I have added a description of my changes and why I'd like them included in the section below

    Description of Changes

    Add support functions for parsing responses for requests made with Request's from the profanity_check_request & profanity_replace_request functions. Update example using response parse function as well.

    Update: Shall we bump version in this PR as well?

    opened by bwestlin 4
  • Add docs and rename API functions

    Add docs and rename API functions

    • Add documentation to public API functions ~* Rename API functions from profanity_ to text_ to make their use case clearer~ ~* Rename example from profanity to text_moderation~

    Proposed additions to:

    • https://github.com/EmbarkStudios/tame-webpurify/pull/3
    opened by vojd 1
  • Add some badges to readme

    Add some badges to readme

    Checklist

    • [x] I have read the Contributor Guide
    • [x] I have read and agree to the Code of Conduct
    • [x] I have added a description of my changes and why I'd like them included in the section below

    Description of Changes

    Added some badges to the readme and checked that they work.

    opened by bwestlin 0
  • Fixes to changelog

    Fixes to changelog

    Checklist

    • [x] I have read the Contributor Guide
    • [x] I have read and agree to the Code of Conduct
    • [x] I have added a description of my changes and why I'd like them included in the section below

    Description of Changes

    Added Unreleased entry in changelog and fixed the compare links

    opened by bwestlin 0
  • Cargo metadata for release

    Cargo metadata for release

    Checklist

    • [x] I have read the Contributor Guide
    • [x] I have read and agree to the Code of Conduct
    • [x] I have added a description of my changes and why I'd like them included in the section below

    Description of Changes

    Add license and related information to cargo.toml before publishing to crates.io

    opened by vojd 0
  • Initial version

    Initial version

    Checklist

    • [x] I have read the Contributor Guide
    • [x] I have read and agree to the Code of Conduct
    • [x] I have added a description of my changes and why I'd like them included in the section below

    Description of Changes

    Initial version of tame-webpurify. Contains the required code to build request objects for interacting with the webpurify api.

    Small example provided on how to use tame-webpurify with reqwest.

    Related Issues

    List related issues here

    opened by vojd 0
Owner
Embark
The future belongs to the curious
Embark
🍋: A General Lock following paper "Optimistic Lock Coupling: A Scalable and Efficient General-Purpose Synchronization Method"

Optimistic Lock Coupling from paper "Optimistic Lock Coupling: A Scalable and Efficient General-Purpose Synchronization Method" In actual projects, th

LemonHX 22 Oct 13, 2022
An attempt to start documenting the rust sdk for temporal and how to use it following some of the examples in typescript

This is an attempt to start documenting the rust sdk for temporal and how to use it following some of the examples in typescript.

Cosm 5 May 24, 2023
Tiny HTTP client for GET

tinyget a tiny fork of minreq. Simple, minimal-dependency HTTP client. Optional features for https with native-tls TLS implementations. Documentation

迷渡 19 Dec 31, 2022
An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous and blocking clients respectively.

eithers_rust An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous a

null 2 Oct 24, 2021
`memory_pages` is a small library provinig a cross-platform API to request pages from kernel with certain premisions

memory_pages: High level API for low level memory management While using low-level memory management in a project can provide substantial benefits, it

null 14 Mar 30, 2023
Conversion Tools API Rust client

ConversionTools Rust This Conversion Tools API Rust client allows you to use the site API and convert files faster and more conveniently. Site Convers

WinsomeQuill 2 Jan 23, 2022
The second Rust implementation on GitHub of third-party REST API client for Bilibili.

Bilibili REST API The second Rust implementation on GitHub of third-party REST API client for Bilibili. Designed to be lightweight and efficient. It's

null 4 Aug 25, 2022
List public items (public API) of Rust library crates. Enables diffing public API between releases.

cargo wrapper for this library You probably want the cargo wrapper to this library. See https://github.com/Enselic/cargo-public-items. public_items Li

Martin Nordholts 20 Dec 26, 2022
Uma lib para a API do Brasil API (para o Rust)

Uma lib para a API do BrasilAPI (para o Rust) Features CEP (Zip code) DDD Bank CNPJ IBGE Feriados Nacionais Tabela FIPE ISBN Registros de domínios br

Pedro Augusto 6 Dec 13, 2022
A highly performant HTTP bittorrent tracker (WIP)

kiryuu Rewrite of kouko in Rust, for better performance! Kiryuu powers http://tracker.mywaifu.best:6969/announce Thanks Many thanks to horsie and anon

Raghu Saxena 6 Dec 15, 2022
A tiny service that downloads files over HTTP links, with resume and restart support.

Http Drogue Http Drogue is a tiny service that downloads files over HTTP from links you provide. It can restart and resume interrupted downloads. Http

Kaan Barmore-Genç 4 Feb 27, 2023
A really fast http prober.

hrekt A really fast http prober. Install • Usage • Examples • FYI • Contributing • License • Join Discord Installation Fresh Installs $ cargo build -r

zoidsec 15 May 5, 2023
Elton is a benchmark utility written in rust aimed to be used to benchmark HTTP calls.

Elton Elton is an HTTP Benchmark utility with options to be used within an HTTP interface. Installation Elton is currently available via Docker or by

Emil Priver 5 Sep 22, 2023
:crab: Small exercises to get you used to reading and writing Rust code!

rustlings ?? ❤️ Greetings and welcome to rustlings. This project contains small exercises to get you used to reading and writing Rust code. This inclu

The Rust Programming Language 33.1k Jan 2, 2023
Fegeya Elitebuild, small, powerful build system. Written in Rust.

Fegeya Elitebuild Small, powerful, work-in-progress build system. Written in Rust. Features: No functions (all are built-ins) All variables are global

Ferhat Geçdoğan 25 Nov 9, 2022
Small ray tracer demo of the F# to Rust language transpiler in Fable 4.x

Small ray tracer demo of the F# to Rust language transpiler in Fable 4.x

null 45 Nov 16, 2022
This project contains small exercises to get you used to reading and writing Rust code

rustlings ?? ❤️ Greetings and welcome to rustlings. This project contains small exercises to get you used to reading and writing Rust code. This inclu

Cynthia Tran 1 May 24, 2022
Small, clean, easy to use programming language

Thistle A modern, simplistic multi-paradigm language supporting object-oriented features Hello World! import IO object Main def main(): unit

null 7 Apr 13, 2022
Small programs written in Rust. Warm up for the upcoming Selenium Manager

Rust Examples This repository contains several example programs written in Rust. Selenium Manager These examples are used as warm up for the upcoming

Boni García 5 Dec 30, 2022