known-types-x 0.1.5

Well-known types for X (formerly Twitter) APIs.
Documentation

Known Types

License Compatibility Package Documentation

Well-known types for Rust. Validated social handles, API schemas, package metadata, and C type aliases, organized into platform-specific crates.

[Features] | [Prerequisites] | [Installation] | [Examples] | [Reference] | [Development]

✨ Features

  • Zero default dependencies, only optional integrations.
  • Supports opting out of any feature using comprehensive feature flags.
  • Adheres to the Rust API Guidelines in its naming conventions.
  • Cuts red tape: 100% free and unencumbered public domain software.

🛠️ Prerequisites

  • Rust 1.94+ (2024 edition)

⬇️ Installation

Installation via Cargo

cargo add known-types

Installation via Cargo (all crates)

cargo add known-types
cargo add known-types-anthropic
cargo add known-types-github
cargo add known-types-google
cargo add known-types-graphql
cargo add known-types-gravatar
cargo add known-types-ietf
cargo add known-types-instagram
cargo add known-types-linkedin
cargo add known-types-luma
cargo add known-types-nostr
cargo add known-types-openai
cargo add known-types-pypi
cargo add known-types-rubygems
cargo add known-types-w3c
cargo add known-types-x

Installation in Cargo.toml

Enable all default features:

[dependencies]
known-types = "0"

Installation in Cargo.toml (with all features enabled, in all crates)

[dependencies]
known-types = "0"
known-types-anthropic = "0"
known-types-github = "0"
known-types-google = "0"
known-types-graphql = "0"
known-types-gravatar = "0"
known-types-ietf = "0"
known-types-instagram = "0"
known-types-linkedin = "0"
known-types-luma = "0"
known-types-nostr = "0"
known-types-openai = "0"
known-types-pypi = "0"
known-types-rubygems = "0"
known-types-w3c = "0"
known-types-x = "0"

Enable only specific features:

[dependencies]
known-types-x = { version = "0.1", default-features = false, features = ["alloc", "serde"] }

Installation in Cargo.toml (with only specific features enabled, in all crates)

[dependencies]
known-types = { version = "0", default-features = false, features = ["serde"] }
known-types-anthropic = { version = "0", default-features = false, features = ["serde"] }
known-types-github = { version = "0", default-features = false, features = ["serde"] }
known-types-google = { version = "0", default-features = false, features = ["serde"] }
known-types-graphql = { version = "0", default-features = false, features = ["serde"] }
known-types-gravatar = { version = "0", default-features = false, features = ["serde"] }
known-types-ietf = { version = "0", default-features = false, features = ["serde"] }
known-types-instagram = { version = "0", default-features = false, features = ["serde"] }
known-types-linkedin = { version = "0", default-features = false, features = ["serde"] }
known-types-luma = { version = "0", default-features = false, features = ["serde"] }
known-types-nostr = { version = "0", default-features = false, features = ["serde"] }
known-types-openai = { version = "0", default-features = false, features = ["serde"] }
known-types-pypi = { version = "0", default-features = false, features = ["serde"] }
known-types-rubygems = { version = "0", default-features = false, features = ["serde"] }
known-types-w3c = { version = "0", default-features = false, features = ["serde"] }
known-types-x = { version = "0", default-features = false, features = ["serde"] }

👉 Examples

Importing the Library

use known_types;

Importing the Library (all crates)

use known_types;
use known_types_anthropic;
use known_types_github;
use known_types_google;
use known_types_graphql;
use known_types_gravatar;
use known_types_ietf;
use known_types_instagram;
use known_types_linkedin;
use known_types_luma;
use known_types_nostr;
use known_types_openai;
use known_types_pypi;
use known_types_rubygems;
use known_types_w3c;
use known_types_x;

Validating Social Media Handles

Construct handles with FromStr or TryFrom<&str> / TryFrom<String>:

use known_types_x::{ParseHandleError, XHandle};

fn main() -> Result<(), ParseHandleError> {
    let handle: XHandle = "@PlayItAgainSam".parse()?;
    assert_eq!(handle.as_str(), "PlayItAgainSam");
    assert_eq!(handle, "playitagainsam".parse::<XHandle>()?);
    assert!("not a handle".parse::<XHandle>().is_err());
    Ok(())
}

📚 Reference

docs.rs/known-types

Crates

Crate Version Docs Summary
known-types known-types known-types Well-known types.
known-types-anthropic known-types-anthropic known-types-anthropic Well-known types for Anthropic APIs.
known-types-github known-types-github known-types-github Well-known types for GitHub APIs.
known-types-google known-types-google known-types-google Well-known types for Google APIs.
known-types-graphql known-types-graphql known-types-graphql Well-known types for GraphQL specifications.
known-types-gravatar known-types-gravatar known-types-gravatar Well-known types for Gravatar APIs.
known-types-ietf known-types-ietf known-types-ietf Well-known types for IETF specifications.
known-types-instagram known-types-instagram known-types-instagram Well-known types for Instagram APIs.
known-types-linkedin known-types-linkedin known-types-linkedin Well-known types for LinkedIn APIs.
known-types-luma known-types-luma known-types-luma Well-known types for Luma APIs.
known-types-nostr known-types-nostr known-types-nostr Well-known types for the Nostr protocol.
known-types-openai known-types-openai known-types-openai Well-known types for OpenAI APIs.
known-types-pypi known-types-pypi known-types-pypi Well-known types for Python Package Index (PyPI) APIs.
known-types-rubygems known-types-rubygems known-types-rubygems Well-known types for RubyGems.org APIs.
known-types-w3c known-types-w3c known-types-w3c Well-known types for W3C specifications.
known-types-x known-types-x known-types-x Well-known types for X (formerly Twitter) APIs.
 

Integrations

Crate (Feature) Version Usage Summary
async-graphql  ("async-graphql") 7.2 async-graphql Implements ScalarType, InputType, OutputType, and connection::CursorType for handles
borsh  ("borsh") 1.5 borsh Derives borsh::{BorshSerialize, BorshDeserialize}
musli  ("musli") 0.0.131 musli Derives musli::{Encode, Decode}
serde  ("serde") 1 serde Derives serde::{Serialize, Deserialize}
SQLx  ("sqlx") 0.9 sqlx Implements sqlx::{Type, Encode, Decode} for handles
 

See Also

Package Crate Docs
known-errors Package Documentation
known-languages Package Documentation
known-paths Package Documentation
known-schemes Package Documentation
known-types Package Documentation

👨‍💻 Development

git clone https://github.com/it-is-known/known-types.git

Share on X Share on Reddit Share on Hacker News Share on Facebook Share on LinkedIn