# dtool [![Build Status](https://travis-ci.org/guoxbin/dtool.svg?branch=master)](https://travis-ci.org/guoxbin/dtool) [![Crates.io](https://img.shields.io/crates/v/dtool)](https://crates.io/crates/dtool) `dtool` is a command-line tool collection to assist development ## Table of Contents - [Description](#description) - [Usage](#usage) - [Tips](#tips) - [Installation](#installation) ## Description Now `dtool` supports: - [Hex / UTF-8 string / binary / byte array conversion](./docs/Usage.md#hex--utf-8-string--binary--byte-array-conversion) - [Timestamp / date conversion](./docs/Usage.md#timestamp--date-conversion) - [Number 10/2/8/16 base conversion](./docs/Usage.md#number-102816-base-conversion) - [Hex / base58 conversion](./docs/Usage.md#hex--base58-conversion) - [Hex / base64 conversion](./docs/Usage.md#hex--base64-conversion) - [URL encode / decode](./docs/Usage.md#url-encode--decode) - [Number codec](./docs/Usage.md#number-codec) - [Hash (MD5, SHA-1, SHA-2, SHA-3, RIPEMD, CRC, Blake2b, SM3, Twox)](./docs/Usage.md#hash-md5-sha-1-sha-2-sha-3-ripemd-crc-blake2b-sm3-twox) - [UTF-8 string / unicode conversion](./docs/Usage.md#utf-8-string--unicode-conversion) - [HTML entity encode / decode](./docs/Usage.md#html-entity-encode--decode) - [Regex match](./docs/Usage.md#regex-match) - [Pbkdf2](./docs/Usage.md#pbkdf2) - [Case conversion (upper, lower, title, camel, pascal, snake, shouty snake, kebab, sarcasm)](./docs/Usage.md#case-conversion-upper-lower-title-camel-pascal-snake-shouty-snake-kebab-sarcasm) - [AES encrypt / decrypt](./docs/Usage.md#aes-encrypt--decrypt) - [ECDSA (Secp256k1, NIST P-256, NIST P-384, SM2)](./docs/Usage.md#ecdsa-secp256k1-nist-p-256-nist-p-384-sm2) - [SM4 encrypt / decrypt](./docs/Usage.md#sm4-encrypt--decrypt) - [EdDSA (Ed25519)](./docs/Usage.md#eddsa-ed25519) - [sr25519 signature](./docs/Usage.md#sr25519-signature) ## Usage `dtool` does different works by different sub commands: |Sub command| Desc | Example | |-----------|-------------------------------------|------------------------------| | h2s |Convert hex to UTF-8 string
v0.1.0|$ dtool h2s 0x61626364
abcd| | s2h |Convert UTF-8 string to hex
v0.1.0|$ dtool s2h abcd
0x61626364| | h2b | Convert hex to binary
v0.1.0 |$ dtool h2b 0x61626364
abcd| | b2h | Convert binary to hex
v0.1.0 |$ dtool b2h abcd
0x61626364| | ...| [View full usage document](./docs/Usage.md) * Besides the sub command `help`, `dtool` provides a sub command `usage` to show examples: ```bash $ dtool usage Usage ---------------------------------------------------------- h2s Convert hex to UTF-8 string $ dtool h2s 0x61626364 v0.1.0 abcd ---------------------------------------------------------- ... ``` * You can search usage with a keyword: ```bash $ dtool usage -s md5 Usage ------------------------------------------------------- hash Hex to hash $ dtool hash -a md5 0x616263 MD5 0x900150983cd24fb0d6963f7d28e17f72 v0.2.0 ------------------------------------------------------- ``` ## Tips ### pipe convert a string to base64 ``` $ echo -n abc | dtool s2h | dtool h2b64 YWJj ``` convert a encoded timestamp to date ``` $ echo -n 2c28e75d | dtool nd -tu32 | dtool ts2d 2019-12-04 11:29:48 ``` convert a jpeg to base64 ``` $ cat pic.jpg | dtool b2h | dtool h2b64 /9j/4AAQSkZJR... ``` calculate file md5 ``` $ cat pic.jpg | dtool b2h | dtool hash -a md5 0x1884b72e23b0c93320bac6b050478ff4 ``` ## Installation ### Homebrew ```bash $ brew install guoxbin/guoxbin/dtool ``` Recommend! Homebrew will install shell completion for bash, fish, and zsh along with `dtool` ### Arch Linux There is [an AUR package for dtool](https://aur.archlinux.org/packages/dtool/) that includes shell completion for bash, fish, and zsh. ```bash git clone https://aur.archlinux.org/dtool.git cd dtool makepkg -si ``` ### Cargo ```bash $ cargo install dtool ```