polyvalid

Crates.iopolyvalid
lib.rspolyvalid
version0.1.7
sourcesrc
created_at2023-03-25 16:30:24.093466
updated_at2023-04-04 12:09:26.916094
descriptionA validator for package names, namespace, username and app name on wasmer
homepage
repositoryhttps://github.com/ayys/polyvalid
max_upload_size
id820373
size143,750
आयुष झा (Ayush Jha) (ayys)

documentation

README

polyvalid

polyvalid is a Rust library for validating package names, usernames, namespace names, and app names. The library provides a single source of truth for validating the names with the following rules:

  1. Start with an alphabet character
  2. Have one or more alphanumeric characters, _ or -
  3. End with an alphanumeric character

Additionally, the library checks if the name contains -- since it can break URL rules.

The library can be used from Python and JS through the provided bindings.

Using the library

The library can be used from rust, python or javascript. The following describes how to use it from all three languages.

Rust

cargo add polyvalid
use polyvalid;

let name: String = "polyvalid";

assert!(polyvalid::is_app_name_valid(name));

Python

pip add polyvalid
import polyvalid

name = "polyvalid"
polyvalid.is_app_name_valid(name) # returns True

Javascript

npm i polyvalid
import "polyvalid";
name = "polyvalid";
polyvalid.is_valid_name(name); // returns true

Next steps

  • Add CI to autopublish to wapm, pypi, npm
  • Add tests for python and JS versions of the library
  • Add wrapper around the python library (to improve usability)

Contributing

Contributions are welcome! If you'd like to contribute to polyvalid, please follow these steps:

  1. Fork the repo and create a new branch for your changes.
  2. Make your changes, write tests, and ensure that the tests pass.
  3. Submit a pull request to the polyvalid repo.
  4. Wait for feedback or approval from the maintainers.
Commit count: 52

cargo fmt