{"id":17604280,"url":"https://github.com/whatisinternet/inflector","last_synced_at":"2025-12-30T02:57:03.691Z","repository":{"id":1755100,"uuid":"41618342","full_name":"whatisinternet/Inflector","owner":"whatisinternet","description":"A rust inflection library","archived":true,"fork":false,"pushed_at":"2023-06-03T00:16:22.000Z","size":297,"stargazers_count":126,"open_issues_count":16,"forks_count":27,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-07T10:45:03.811Z","etag":null,"topics":["crates","inflector","pluralization","rust","string-manipulation"],"latest_commit_sha":null,"homepage":"https://docs.rs/Inflector","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whatisinternet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-08-30T05:54:17.000Z","updated_at":"2025-10-26T17:45:13.000Z","dependencies_parsed_at":"2023-07-05T21:16:42.003Z","dependency_job_id":null,"html_url":"https://github.com/whatisinternet/Inflector","commit_stats":{"total_commits":197,"total_committers":10,"mean_commits":19.7,"dds":0.09137055837563457,"last_synced_commit":"a4a95eac75043f4bffb127c7c8ec886b5b106053"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/whatisinternet/Inflector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whatisinternet%2FInflector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whatisinternet%2FInflector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whatisinternet%2FInflector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whatisinternet%2FInflector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whatisinternet","download_url":"https://codeload.github.com/whatisinternet/Inflector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whatisinternet%2FInflector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27684606,"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-12-12T02:00:06.775Z","response_time":129,"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":["crates","inflector","pluralization","rust","string-manipulation"],"created_at":"2024-10-22T14:07:58.972Z","updated_at":"2025-12-12T16:56:19.946Z","avatar_url":"https://github.com/whatisinternet.png","language":"Rust","readme":"# Rust Inflector\n\n\n[![Build Status](https://travis-ci.org/whatisinternet/Inflector.svg?branch=master)](https://travis-ci.org/whatisinternet/Inflector) [![Crates.io](https://img.shields.io/crates/v/Inflector.svg)](https://crates.io/crates/inflector)[![Crate downloads](https://img.shields.io/crates/d/Inflector.svg)](https://crates.io/crates/inflector)\n\n\nAdds String based inflections for Rust. Snake, kebab, train, camel,\nsentence, class, and title cases as well as ordinalize,\ndeordinalize, demodulize, deconstantize, foreign key, table case, and pluralize/singularize are supported as both traits and pure functions\nacting on \u0026str and String types.\n\n-----\n## Documentation:\n\nDocumentation can be found here at the README or via rust docs below.\n\n[Rust docs with examples](https://docs.rs/Inflector)\n\n-----\n\n## Installation:\n\n### As a [crate](http://crates.io)\n\n```toml\n[dependencies]\nInflector = \"*\"\n```\n\n### Compile yourself:\n\n1. Install [Rust and cargo](http://doc.crates.io/)\n2. git clone https://github.com/whatisinternet/Inflector\n3. Library: cd inflector \u0026\u0026 cargo build --release --lib\n4. You can find the library in target/release\n\n## Usage / Example:\n\n```rust\n...\n// to use methods like String.to_lower_case();\nextern crate inflector;\nuse inflector::Inflector;\n...\nfn main() {\n...\n  let camel_case_string: String = \"some_string\".to_camel_case();\n...\n}\n\n```\n\nOr\n\n```rust\n...\n// to use methods like to_snake_case(\u0026str);\nextern crate inflector;\n\n// use inflector::cases::classcase::to_class_case;\n// use inflector::cases::classcase::is_class_case;\n\n// use inflector::cases::camelcase::to_camel_case;\n// use inflector::cases::camelcase::is_camel_case;\n\n// use inflector::cases::pascalcase::to_pascal_case;\n// use inflector::cases::pascalcase::is_pascal_case;\n\n// use inflector::cases::screamingsnakecase::to_screamingsnake_case;\n// use inflector::cases::screamingsnakecase::is_screamingsnake_case;\n\n// use inflector::cases::snakecase::to_snake_case;\n// use inflector::cases::snakecase::is_snake_case;\n\n// use inflector::cases::kebabcase::to_kebab_case;\n// use inflector::cases::kebabcase::is_kebab_case;\n\n// use inflector::cases::traincase::to_train_case;\n// use inflector::cases::traincase::is_train_case;\n\n// use inflector::cases::sentencecase::to_sentence_case;\n// use inflector::cases::sentencecase::is_sentence_case;\n\n// use inflector::cases::titlecase::to_title_case;\n// use inflector::cases::titlecase::is_title_case;\n\n// use inflector::cases::tablecase::to_table_case;\n// use inflector::cases::tablecase::is_table_case;\n\n// use inflector::numbers::ordinalize::ordinalize;\n// use inflector::numbers::deordinalize::deordinalize;\n\n// use inflector::suffix::foreignkey::to_foreign_key;\n// use inflector::suffix::foreignkey::is_foreign_key;\n\n// use inflector::string::demodulize::demodulize;\n// use inflector::string::deconstantize::deconstantize;\n\n// use inflector::string::pluralize::to_plural;\n// use inflector::string::singularize::to_singular;\n...\nfn main() {\n...\n  let camel_case_string: String = to_camel_case(\"some_string\");\n...\n}\n\n```\n\n## Advanced installation and usage:\n\nIf the project doesn't require singularize, pluralize, class, table, demodulize,\ndeconstantize. Then in your `cargo.toml` you may wish to specify:\n\n```toml\n[dependencies.Inflector]\nversion = \"*\"\ndefault-features = false\n```\n\nOr\n\n```toml\nInflector = {version=\"*\", default-features=false}\n\n```\n\nTo test this crate locally with features off try:\n\n```shell\ncargo test --no-default-features\n```\n\n## [Contributing](CONTRIBUTING.md)\n\nThis project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhatisinternet%2Finflector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhatisinternet%2Finflector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhatisinternet%2Finflector/lists"}