Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

rustyrs

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rustyrs

  • 0.5.1
  • PyPI
  • Socket score

Maintainers
1

Random Slug Generator

What it says on the tin - this generates random text slugs in Rust.

Usable as a standalone binary, web applications as a WebAssembly module (WASM), or even as a Python module.

  • Rust Binary
  • Standalone Binary
  • WASM Module
  • Python Module

Why?

I needed a way to generate random slugs for a web project so thought it was a good opporunity to try out Rust's WebAssembly capabilities while also being able to use the same code as a zero-dependency python module for other projects.

Key features

  • Generates unique random slugs for a input length in words
  • Blazingly fast
  • Zero dependencies
  • Customisable slug length in words
  • Over half a million unique combinations for 2-word slugs ranging up to over 280 trillion unique combinations for 5-word slugs.

Usage

As a Rust binary

cargo run --release [length in words] [number of slugs]

As a standalone binary

cargo build --release
[build path]/rustyrs [length in words] [number of slugs]
Example Output
proctor-slimmer-guillemot
unsafe-warlike-avocado
garbled-pulled-stork
answerable-quick-whale
floral-apportioned-bobcat

As a WASM module

# If wasm pack is not already installed
cargo install wasm-pack 

# build the WASM module
wasm-pack build --target web --features wasm

Then from JS/TS:

import init, { random_slugs } from './pkg/rustyrs.js';
init();
const slugs: string[] = random_slugs(3, 5);
console.log(slugs);

// slugs: ['postpartum-regal-taipan', 'devastating-elven-salamander', 'immense-ambivalent-wren', 'philosophical-bandaged-gaur', 'outlaw-noncommercial-sunfish']

See index.html for a full example


As a Python module

Install from PyPI
pip install rustyrs
Build from source
python -m venv venv
source venv/bin/activate
pip install maturin
maturin develop --features python

Then from Python:

from rustyrs import random_slugs
slugs: list[str] = random_slugs(3, 5)

# slugs: ['reflecting-unsealed-mamba', 'disabling-addicting-asp', 'pliable-begotten-barnacle', 'vaulting-telepathic-caracal', 'canonical-graven-beetle']

Other features:

  • get_slug(word_length: int) -> str: Generate a single slug of a specific length
  • SlugGenerator(word_length: int): Create a generator object to generate slugs of a specific length. Can generate slugs infinitely.
    from rustyrs import SlugGenerator
    gen = SlugGenerator(3)
    print(next(gen)) # 'unwieldy-unsuspecting-ant'
    
  • combinations(word_length: int) -> int: Get the number of possible combinations for a given word length
    from rustyrs import combinations
    print(combinations(2)) # 556,284
    

Performance

  • 0.5 million x 2 word slugs: ~0.47s
  • 1 million x 5 word slugs: ~1.717s

License

MIT

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc