{"id":16759559,"url":"https://github.com/cyrildever/go-utls","last_synced_at":"2025-04-10T17:14:53.258Z","repository":{"id":41634819,"uuid":"291951130","full_name":"cyrildever/go-utls","owner":"cyrildever","description":"Utilities for Go","archived":false,"fork":false,"pushed_at":"2025-01-14T10:13:16.000Z","size":549,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T15:02:34.525Z","etag":null,"topics":["bip32","cryptography","ecies-geth","empreinte-sociometrique","golang","utilities-library"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyrildever.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":"2020-09-01T09:12:49.000Z","updated_at":"2025-01-14T10:13:20.000Z","dependencies_parsed_at":"2024-06-19T22:47:24.859Z","dependency_job_id":"5fcaf38e-e9d9-48dd-b26e-422a63981697","html_url":"https://github.com/cyrildever/go-utls","commit_stats":null,"previous_names":[],"tags_count":101,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyrildever%2Fgo-utls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyrildever%2Fgo-utls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyrildever%2Fgo-utls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyrildever%2Fgo-utls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyrildever","download_url":"https://codeload.github.com/cyrildever/go-utls/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248261916,"owners_count":21074225,"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":["bip32","cryptography","ecies-geth","empreinte-sociometrique","golang","utilities-library"],"created_at":"2024-10-13T04:08:26.937Z","updated_at":"2025-04-10T17:14:53.238Z","avatar_url":"https://github.com/cyrildever.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-utls\n_Utilities for Go_\n\n![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/cyrildever/go-utls)\n![GitHub last commit](https://img.shields.io/github/last-commit/cyrildever/go-utls)\n![GitHub issues](https://img.shields.io/github/issues/cyrildever/go-utls)\n![GitHub](https://img.shields.io/github/license/cyrildever/go-utls)\n\n`go-utls` is a small Go repository where I put all the useful stuff I regularly need in my projects.\nFeel free to use at your discretion with the appropriate license mentions.\n\n_NB: I've developed the same kind of libraries for [TypeScript](https://www.npmjs.com/package/ts-utls) and [Python](https://pypi.org/project/py-utls/)._\n\n\n### Usage\n\n```console\ngo get github.com/cyrildever/go-utls\n```\n\nThis repository contains the following modules:\n- `crypto`: a proxy to Go-Ethereum's ECIES library and to my [`ecies-geth`](https://www.npmjs.com/package/ecies-geth) JavaScript library (including the `Path` type) as well as a small `SSHPublicKey2String()` utility;\n- `io`: a light REST client utility on top of `fasthttp` with `Delete`, `Get`, `Patch`, `Post` and `Put` methods;\n- `model`: a list of types I frequently use in my projects (such as `Base64` or `Hash` types) all implementing my [`Model`](model/Model.go) interface;\n- `normalizer`: the adaptation of my Empreinte Sociométrique\u0026trade; patented work for normalizing contact data (see its specific [README](normalizer/README.md) or use its TypeScript equivalent on NPM: [`es-normalizer`](https://www.npmjs.com/package/es-normalizer));\n- a few utility sub-modules:\n  * `caller`: to get information about the location of the calling function (file name and line number);\n  * `concurrent`: to handle concurrent maps and slices (with faster slice appending when its length is set at instantiation through the `concurrent.NewSlice` function);\n  * `email`: my \"quick-and-dirty\" SMTP client (including examples in tests for use with AWS SES or Gmail);\n  * `env`: to know if an environment variable is set and cast it as either a boolean, an integer or a string (potentially setting it with a default value);\n  * `event`: a simple event bus manager;\n  * `file`: to find, truncate, know existence, delete, get line count or read all lines from a file;\n  * `logger`: a wrapper to the `log` package to output logs to stderr and optionally a file;\n  * `ntp`: another small wrapper to handle time with NTP;\n  * `packer`: to marshal/unmarshal data (JSON, MessagePack, MongoDB's Bson, \u0026mldr;);\n  * `utils`: a bunch of useful utility functions (`Capitalize()`, `Chunk()`, `DateFormat()` from Java notation, `EuclideanDivision()`, `Flatten()`, `FromHex()`/`ToHex()`, back-and-forth conversions of byte arrays (to string, number, etc.), `IsPointer()`/`IsValue()` test methods, `PrettyPrintJSON()`, `Reverse()` for strings, `ToUTF8()` string formatting, \u0026mldr;);\n  * `xor`: to apply XOR operation to strings or byte arrays.\n\n\n### License\n\nThese modules are distributed under a MIT license. \\\nSee the [LICENSE](LICENSE) file.\n\n\n\u003chr /\u003e\n\u0026copy; 2020-2025 Cyril Dever. All rights reserved.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyrildever%2Fgo-utls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyrildever%2Fgo-utls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyrildever%2Fgo-utls/lists"}