{"id":13509687,"url":"https://github.com/erlware/erlware_commons","last_synced_at":"2025-10-21T19:02:30.311Z","repository":{"id":778797,"uuid":"1447010","full_name":"erlware/erlware_commons","owner":"erlware","description":"Erlware Commons is an Erlware project focused on all aspects of reusable Erlang components.","archived":false,"fork":false,"pushed_at":"2024-05-16T13:44:14.000Z","size":2911,"stargazers_count":219,"open_issues_count":5,"forks_count":101,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-05-16T14:54:53.852Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://erlware.github.io/erlware_commons/","language":"Erlang","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/erlware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","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":"2011-03-06T17:47:30.000Z","updated_at":"2024-06-01T16:44:29.054Z","dependencies_parsed_at":"2024-06-01T16:44:27.526Z","dependency_job_id":"532c618a-ab98-4eac-813d-d70f90bf4931","html_url":"https://github.com/erlware/erlware_commons","commit_stats":{"total_commits":216,"total_committers":39,"mean_commits":5.538461538461538,"dds":0.6481481481481481,"last_synced_commit":"eeb25f4b7f4d9f423a0470461d225fb6a61217d2"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlware%2Ferlware_commons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlware%2Ferlware_commons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlware%2Ferlware_commons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erlware%2Ferlware_commons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erlware","download_url":"https://codeload.github.com/erlware/erlware_commons/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245414538,"owners_count":20611367,"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-01T02:01:11.490Z","updated_at":"2025-10-21T19:02:30.233Z","avatar_url":"https://github.com/erlware.png","language":"Erlang","funding_links":[],"categories":["Utilities"],"sub_categories":[],"readme":"Erlware Commons\n===============\n\nCurrent Status\n--------------\n\n[![Hex.pm](https://img.shields.io/hexpm/v/erlware_commons)](https://hex.pm/packages/erlware_commons)\n[![Tests](https://github.com/erlware/erlware_commons/workflows/EUnit/badge.svg)](https://github.com/erlware/erlware_commons/actions)\n\nIntroduction\n------------\n\nErlware commons can best be described as an extension to the stdlib\napplication that is distributed with Erlang. These are things that we\nat Erlware have found useful for production applications but are not\nincluded with the distribution. We hope that as things in this library\nprove themselves useful, they will make their way into the main Erlang\ndistribution. However, whether they do or not, we hope that this\napplication will prove generally useful.\n\nGoals for the project\n---------------------\n\n* Generally Useful Code\n* High Quality\n* Well Documented\n* Well Tested\n\nLicenses\n--------\n\nThis project contains elements licensed with Apache License, Version 2.0,\nas well as elements licensed with The MIT License.\n\nYou'll find license-related information in the header of specific files,\nwhere warranted.\n\nIn cases where no such information is present refer to\n[COPYING](COPYING).\n\nCurrently Available Modules/Systems\n------------------------------------\n\n### [ec_date](https://github.com/erlware/erlware_commons/blob/master/src/ec_date.erl)\n\nThis module formats erlang dates in the form {{Year, Month, Day},\n{Hour, Minute, Second}} to printable strings, using (almost)\nequivalent formatting rules as http://uk.php.net/date, US vs European\ndates are disambiguated in the same way as\nhttp://uk.php.net/manual/en/function.strtotime.php That is, Dates in\nthe m/d/y or d-m-y formats are disambiguated by looking at the\nseparator between the various components: if the separator is a slash\n(/), then the American m/d/y is assumed; whereas if the separator is a\ndash (-) or a dot (.), then the European d-m-y format is assumed. To\navoid potential ambiguity, it's best to use ISO 8601 (YYYY-MM-DD)\ndates.\n\nerlang has no concept of timezone so the following formats are not\nimplemented: B e I O P T Z formats c and r will also differ slightly\n\n### [ec_file](https://github.com/erlware/erlware_commons/blob/master/src/ec_file.erl)\n\nA set of commonly defined helper functions for files that are not\nincluded in stdlib.\n\n### [ec_plists](https://github.com/erlware/erlware_commons/blob/master/src/ec_plists.erl)\n\nplists is a drop-in replacement for module \u003ca\nhref=\"http://www.erlang.org/doc/man/lists.html\"\u003elists\u003c/a\u003e, making most\nlist operations parallel. It can operate on each element in parallel,\nfor IO-bound operations, on sublists in parallel, for taking advantage\nof multi-core machines with CPU-bound operations, and across erlang\nnodes, for parallelizing inside a cluster. It handles errors and node\nfailures. It can be configured, tuned, and tweaked to get optimal\nperformance while minimizing overhead.\n\nAlmost all the functions are identical to equivalent functions in\nlists, returning exactly the same result, and having both a form with\nan identical syntax that operates on each element in parallel and a\nform which takes an optional \"malt\", a specification for how to\nparallelize the operation.\n\nfold is the one exception, parallel fold is different from linear\nfold.  This module also include a simple mapreduce implementation, and\nthe function runmany. All the other functions are implemented with\nrunmany, which is as a generalization of parallel list operations.\n\n### [ec_semver](https://github.com/erlware/erlware_commons/blob/master/src/ec_semver.erl)\n\nA complete parser for the [semver](http://semver.org/)\nstandard. Including a complete set of conforming comparison functions.\n\n### [ec_lists](https://github.com/erlware/erlware_commons/blob/master/src/ec_lists.erl)\n\nA set of additional list manipulation functions designed to supliment\nthe `lists` module in stdlib.\n\n### [ec_talk](https://github.com/erlware/erlware_commons/blob/master/src/ec_talk.erl)\n\nA set of simple utility functions to facilitate command line\ncommunication with a user.\n\nSignatures\n-----------\n\nOther languages, have built in support for **Interface** or\n**signature** functionality. Java has Interfaces, SML has\nSignatures. Erlang, though, doesn't currently support this model, at\nleast not directly. There are a few ways you can approximate it. We\nhave defined a mechanism called *signatures* and several modules that\nto serve as examples and provide a good set of *dictionary*\nsignatures. More information about signatures can be found at\n[signature](https://github.com/erlware/erlware_commons/blob/master/doc/signatures.md).\n\n\n### [ec_dictionary](https://github.com/erlware/erlware_commons/blob/master/src/ec_dictionary.erl)\n\nA signature that supports association of keys to values. A map cannot\ncontain duplicate keys; each key can map to at most one value.\n\n### [ec_dict](https://github.com/erlware/erlware_commons/blob/master/src/ec_dict.erl)\n\nThis provides an implementation of the ec_dictionary signature using\nerlang's dicts as a base. The function documentation for ec_dictionary\napplies here as well.\n\n### [ec_gb_trees](https://github.com/erlware/erlware_commons/blob/master/src/ec_gb_trees.erl)\n\nThis provides an implementation of the ec_dictionary signature using\nerlang's gb_trees as a base. The function documentation for\nec_dictionary applies here as well.\n\n### [ec_orddict](https://github.com/erlware/erlware_commons/blob/master/src/ec_orddict.erl)\n\nThis provides an implementation of the ec_dictionary signature using\nerlang's orddict as a base. The function documentation for\nec_dictionary applies here as well.\n\n### [ec_rbdict](https://github.com/erlware/erlware_commons/blob/master/src/ec_rbdict.erl)\n\nThis provides an implementation of the ec_dictionary signature using\nRobert Virding's rbdict module as a base. The function documentation\nfor ec_dictionary applies here as well.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferlware%2Ferlware_commons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferlware%2Ferlware_commons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferlware%2Ferlware_commons/lists"}