package

github.com/crystal-china/base58.cr

main / published Feb 19, 2026 / repository

Generate random strings with Base58 alphabet, with better performance.

base58.cr

Generate random strings with Base58 alphabet.

Base58 string may contain alphanumeric characters except 0, O, I and l, it can be build use following Crystal code.

("0".."9").to_a + ("A".."Z").to_a + ("a".."z").to_a - ["0", "O", "I", "l"]

Better performance than valenciaj/crystal-base58, thanks a lot for the discussion in the forum

| shard name | usage | result | score | | - | - | - | - | |base58.cr | Random.base58() | 33.17M ( 30.15ns) (± 3.27%) 32.0B/op | fastest | crystal-base58 | Base58.random() | 3.52M (284.24ns) (± 3.82%) 401B/op | 9.43× slower

How to use it.

Add this shard into shard.yml, then run shards install

dependencies:
  base58:
    github: crystal-china/base58.cr

Use it.

require "base58"

Random.base58(20)  # => bbTmPChwQAPKyUV2P9oZ

Contributing

  1. Fork it (https://github.com/crystal-china/base58.cr/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

API

  • Random

    Random provides an interface for random values generation, using a pseudo random number generator (PRNG).