{"id":13637271,"url":"https://github.com/comex/rust-shlex","last_synced_at":"2025-05-15T01:08:31.844Z","repository":{"id":1012755,"uuid":"37886228","full_name":"comex/rust-shlex","owner":"comex","description":"Split a string into shell words, like Python's shlex.","archived":false,"fork":false,"pushed_at":"2025-04-02T13:23:13.000Z","size":173,"stargazers_count":121,"open_issues_count":7,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-14T05:20:06.974Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://crates.io/crates/shlex","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/comex.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","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":"2015-06-22T23:36:18.000Z","updated_at":"2025-05-13T02:02:46.000Z","dependencies_parsed_at":"2024-06-18T19:50:40.187Z","dependency_job_id":"9fb350e1-ad6b-4177-95ac-056c2060d1e3","html_url":"https://github.com/comex/rust-shlex","commit_stats":{"total_commits":23,"total_committers":6,"mean_commits":"3.8333333333333335","dds":0.5217391304347826,"last_synced_commit":"aa2d6e39cc97fd52cfab539ce428eb47f03473d4"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comex%2Frust-shlex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comex%2Frust-shlex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comex%2Frust-shlex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comex%2Frust-shlex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/comex","download_url":"https://codeload.github.com/comex/rust-shlex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254113310,"owners_count":22016946,"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-08-02T00:01:14.202Z","updated_at":"2025-05-15T01:08:26.835Z","avatar_url":"https://github.com/comex.png","language":"Rust","funding_links":[],"categories":["Libraries","Rust"],"sub_categories":["Parsing"],"readme":"[![ci badge]][ci link] [![crates.io badge]][crates.io link] [![docs.rs badge]][docs.rs link]\n\n[crates.io badge]: https://img.shields.io/crates/v/shlex.svg?style=flat-square\n[crates.io link]: https://crates.io/crates/shlex\n[docs.rs badge]: https://img.shields.io/badge/docs-online-dddddd.svg?style=flat-square\n[docs.rs link]: https://docs.rs/shlex\n[ci badge]: https://img.shields.io/github/actions/workflow/status/comex/rust-shlex/test.yml?branch=master\u0026style=flat-square\n[ci link]: https://github.com/comex/rust-shlex/actions\n\nSame idea as (but implementation not directly based on) the Python shlex\nmodule. However, this implementation does not support any of the Python\nmodule's customization because it makes parsing slower and is fairly useless.\nYou only get the default settings of shlex.split, which mimic the POSIX shell:\n\u003chttps://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html\u003e\n\nThis implementation also deviates from the Python version in not treating \\r\nspecially, which I believe is more compliant.\n\nThis crate can be used on either normal Rust strings, or on byte strings with\nthe `bytes` module. The algorithms used are oblivious to UTF-8 high bytes, so\ninternally they all work on bytes directly as a micro-optimization.\n\nDisabling the `std` feature (which is enabled by default) will allow the crate\nto work in `no_std` environments, where the `alloc` crate, and a global\nallocator, are available.\n\n# LICENSE\n\nThe source code in this repository is Licensed under either of\n- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or\n  https://www.apache.org/licenses/LICENSE-2.0)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or\n  https://opensource.org/licenses/MIT)\n\nat your option.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomex%2Frust-shlex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomex%2Frust-shlex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomex%2Frust-shlex/lists"}