base62
所属分类:collect
开发工具:Crystal
文件大小:0KB
下载次数:0
上传日期:2022-10-20 22:42:26
上 传 者:
sh-1993
说明: 用于Crystal的Base62编码器-解码器,
(Base62 encoder decoder for Crystal,)
文件列表:
.editorconfig (150, 2023-10-12)
LICENSE (1087, 2023-10-12)
shard.yml (201, 2023-10-12)
spec/ (0, 2023-10-12)
spec/base62_spec.cr (1564, 2023-10-12)
spec/spec_helper.cr (39, 2023-10-12)
src/ (0, 2023-10-12)
src/base62.cr (2182, 2023-10-12)
# Base62.cr [![CI](https://github.com/Sija/base62.cr/actions/workflows/ci.yml/badge.svg)](https://github.com/Sija/base62.cr/actions/workflows/ci.yml) [![Releases](https://img.shields.io/github/release/Sija/base62.cr.svg)](https://github.com/Sija/base62.cr/releases) [![License](https://img.shields.io/github/license/Sija/base62.cr.svg)](https://github.com/Sija/base62.cr/blob/master/LICENSE)
Crystal shard for Base62 encoding/decoding. It's especially useful for
converting data into shortened strings suitable for URL shortening and/or
obfuscating auto-incrementing resource ids from being exposed through RESTful
APIs.
## What is Base62 encoding?
Base62 encoding converts numbers to ASCII strings (0-9, a-z, and A-Z) and vice
versa, which typically results in comparatively short strings. Such identifiers
also tend to be more readily identifiable by humans.
## Installation
Add this to your application's `shard.yml`:
```yaml
dependencies:
base62:
github: Sija/base62.cr
```
## Usage
```crystal
require "base62"
Base62.encode(999) # => "G7"
Base62.decode("G7") # => 999
```
This uses the default **ASCII character set** for encoding/decoding.
It's also possible to define a **custom character set** instead:
```crystal
charset = "~9876543210ABCDEFGHIJKLMNOPQRSTU$#@%!abcdefghijklmnopqrstuvw-="
Base62.encode(999, charset) # => "F3"
Base62.decode("F3", charset) # => 999
```
Note that `charset` typically expects the respective string to contain
exactly 62 unique characters. It's also possible to use character
sets with more than 62 characters to achieve shorter identifiers
for large numbers.
## Contributing
1. Fork it ()
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
- [@Sija](https://github.com/Sija) Sijawusz Pur Rahnama - creator, maintainer
近期下载者:
相关文件:
收藏者: