{"id":13559563,"url":"https://github.com/guoxbin/dtool","last_synced_at":"2025-12-30T08:50:15.185Z","repository":{"id":43223586,"uuid":"226131892","full_name":"guoxbin/dtool","owner":"guoxbin","description":"A command-line tool collection to assist development written in RUST","archived":false,"fork":false,"pushed_at":"2024-06-27T01:37:29.000Z","size":246,"stargazers_count":374,"open_issues_count":10,"forks_count":25,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-05T12:07:35.147Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guoxbin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-05T15:24:31.000Z","updated_at":"2025-03-01T10:37:19.000Z","dependencies_parsed_at":"2022-09-13T10:21:54.424Z","dependency_job_id":"88d1dc50-0c54-41b6-94a3-e86fbc6c1186","html_url":"https://github.com/guoxbin/dtool","commit_stats":{"total_commits":64,"total_committers":7,"mean_commits":9.142857142857142,"dds":0.140625,"last_synced_commit":"a0ea3122010cafcde347768f47d57960df711065"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoxbin%2Fdtool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoxbin%2Fdtool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoxbin%2Fdtool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guoxbin%2Fdtool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guoxbin","download_url":"https://codeload.github.com/guoxbin/dtool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247027675,"owners_count":20871571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:00:29.232Z","updated_at":"2025-12-30T08:50:15.145Z","avatar_url":"https://github.com/guoxbin.png","language":"Rust","funding_links":[],"categories":["Applications","应用程序 Applications","\u003ca name=\"programming\"\u003e\u003c/a\u003eProgramming","Other","Dev-Utilities"],"sub_categories":["Utilities","公用事业公司 Utilities"],"readme":"# dtool\n\n[![Build Status](https://travis-ci.org/guoxbin/dtool.svg?branch=master)](https://travis-ci.org/guoxbin/dtool)\n[![Crates.io](https://img.shields.io/crates/v/dtool)](https://crates.io/crates/dtool)\n\n`dtool` is a command-line tool collection to assist development\n\n## Table of Contents\n\n- [Description](#description)\n- [Usage](#usage)\n  - [Tips](#tips)\n- [Installation](#installation)\n\n## Description\n\nNow `dtool` supports: \n\n- [Hex / UTF-8 string / binary / byte array conversion](./docs/Usage.md#hex--utf-8-string--binary--byte-array-conversion)\n- [Timestamp / date conversion](./docs/Usage.md#timestamp--date-conversion)\n- [Number 10/2/8/16 base conversion](./docs/Usage.md#number-102816-base-conversion)\n- [Hex / base58 conversion](./docs/Usage.md#hex--base58-conversion)\n- [Hex / base64 conversion](./docs/Usage.md#hex--base64-conversion)\n- [URL encode / decode](./docs/Usage.md#url-encode--decode)\n- [Number codec](./docs/Usage.md#number-codec)\n- [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)\n- [UTF-8 string / unicode conversion](./docs/Usage.md#utf-8-string--unicode-conversion)\n- [HTML entity encode / decode](./docs/Usage.md#html-entity-encode--decode)\n- [Regex match](./docs/Usage.md#regex-match)\n- [Pbkdf2](./docs/Usage.md#pbkdf2)\n- [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)\n- [AES encrypt / decrypt](./docs/Usage.md#aes-encrypt--decrypt)\n- [ECDSA (Secp256k1, NIST P-256, NIST P-384, SM2)](./docs/Usage.md#ecdsa-secp256k1-nist-p-256-nist-p-384-sm2)\n- [SM4 encrypt / decrypt](./docs/Usage.md#sm4-encrypt--decrypt)\n- [EdDSA (Ed25519)](./docs/Usage.md#eddsa-ed25519)\n- [sr25519 signature](./docs/Usage.md#sr25519-signature)\n\n## Usage\n\n`dtool` does different works by different sub commands:\n\n|Sub command|                Desc                 |           Example            |\n|-----------|-------------------------------------|------------------------------|\n|    h2s    |Convert hex to UTF-8 string\u003cbr\u003ev0.1.0|$ dtool h2s 0x61626364\u003cbr\u003eabcd|\n|    s2h    |Convert UTF-8 string to hex\u003cbr\u003ev0.1.0|$ dtool s2h abcd\u003cbr\u003e0x61626364|\n|    h2b    |   Convert hex to binary\u003cbr\u003ev0.1.0   |$ dtool h2b 0x61626364\u003cbr\u003eabcd|\n|    b2h    |   Convert binary to hex\u003cbr\u003ev0.1.0   |$ dtool b2h abcd\u003cbr\u003e0x61626364|\n|    ...|\n\n[View full usage document](./docs/Usage.md)\n\n* Besides the sub command `help`, `dtool` provides a sub command `usage` to show examples:\n\n```bash\n$ dtool usage\nUsage\n----------------------------------------------------------\n h2s  Convert hex to UTF-8 string  $ dtool h2s 0x61626364 \n      v0.1.0                       abcd \n----------------------------------------------------------\n...\n```\n\n* You can search usage with a keyword:\n```bash\n$ dtool usage -s md5\nUsage\n-------------------------------------------------------\n hash  Hex to hash  $ dtool hash -a md5 0x616263 \n       MD5          0x900150983cd24fb0d6963f7d28e17f72 \n       v0.2.0        \n-------------------------------------------------------\n```\n\n## Tips\n### pipe \nconvert a string to base64\n```\n$ echo -n abc | dtool s2h | dtool h2b64\nYWJj\n```\n\nconvert a encoded timestamp to date\n```\n$ echo -n 2c28e75d | dtool nd -tu32 | dtool ts2d\n2019-12-04 11:29:48\n```\n\nconvert a jpeg to base64\n```\n$ cat pic.jpg | dtool b2h | dtool h2b64\n/9j/4AAQSkZJR...\n```\n\ncalculate file md5\n```\n$ cat pic.jpg | dtool b2h | dtool hash -a md5\n0x1884b72e23b0c93320bac6b050478ff4\n```\n\n## Installation\n### Homebrew \n```bash\n$ brew install guoxbin/guoxbin/dtool\n```\nRecommend! Homebrew will install shell completion for bash, fish, and zsh along with `dtool`\n\n### Arch Linux\n\nThere is [an AUR package for dtool](https://aur.archlinux.org/packages/dtool/) that includes shell completion for bash, fish, and zsh.\n\n```bash\ngit clone https://aur.archlinux.org/dtool.git\ncd dtool\nmakepkg -si\n```\n\n### Cargo\n```bash\n$ cargo install dtool\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguoxbin%2Fdtool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguoxbin%2Fdtool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguoxbin%2Fdtool/lists"}