{"id":16014705,"url":"https://github.com/green-coder/minimallist","last_synced_at":"2025-07-10T20:08:40.223Z","repository":{"id":50767109,"uuid":"255998322","full_name":"green-coder/minimallist","owner":"green-coder","description":"A minimalist data driven data model library, inspired by Clojure Spec and Malli.","archived":false,"fork":false,"pushed_at":"2024-07-07T07:59:16.000Z","size":208,"stargazers_count":68,"open_issues_count":6,"forks_count":1,"subscribers_count":3,"default_branch":"all-work-and-no-play","last_synced_at":"2025-06-10T12:17:24.157Z","etag":null,"topics":["clojure","clojurescript","data-parsing","data-validation"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/green-coder.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-04-15T18:05:28.000Z","updated_at":"2025-05-05T16:31:44.000Z","dependencies_parsed_at":"2024-10-25T22:41:40.444Z","dependency_job_id":null,"html_url":"https://github.com/green-coder/minimallist","commit_stats":{"total_commits":156,"total_committers":2,"mean_commits":78.0,"dds":"0.0064102564102563875","last_synced_commit":"f10ebbd3c2b93e7579295618a7ed1e870c489bc4"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/green-coder/minimallist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-coder%2Fminimallist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-coder%2Fminimallist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-coder%2Fminimallist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-coder%2Fminimallist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/green-coder","download_url":"https://codeload.github.com/green-coder/minimallist/tar.gz/refs/heads/all-work-and-no-play","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-coder%2Fminimallist/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264647875,"owners_count":23643654,"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":["clojure","clojurescript","data-parsing","data-validation"],"created_at":"2024-10-08T15:04:50.238Z","updated_at":"2025-07-10T20:08:40.201Z","avatar_url":"https://github.com/green-coder.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Minimallist [![CircleCI](https://circleci.com/gh/green-coder/minimallist.svg?style=svg)](https://circleci.com/gh/green-coder/minimallist)\n\nA minimalist data driven data model library, inspired by [Clojure Spec](https://clojure.org/guides/spec) and [Malli](https://github.com/metosin/malli).\n\n[![Clojars Project](https://img.shields.io/clojars/v/minimallist.svg)](https://clojars.org/minimallist)\n[![cljdoc badge](https://cljdoc.org/badge/minimallist/minimallist)](https://cljdoc.org/d/minimallist/minimallist/CURRENT)\n[![project chat](https://img.shields.io/badge/slack-join_chat-brightgreen.svg)](https://clojurians.slack.com/archives/C012HUX1VPC)\n[![cljdoc badge](https://img.shields.io/clojars/dt/minimallist?color=opal)](https://clojars.org/minimallist)\n\n## Usage\n\n```clojure\n(ns your-namespace\n  (:require [minimallist.core :refer [valid? describe]]\n            [minimallist.helper :as h]))\n\n(def hiccup-model\n  (h/let ['hiccup (h/alt [:node (h/in-vector (h/cat [:name (h/fn keyword?)]\n                                                    [:props (h/? (h/map-of (h/vector (h/fn keyword?) (h/fn any?))))]\n                                                    [:children (h/* (h/not-inlined (h/ref 'hiccup)))]))]\n                         [:primitive (h/alt [:nil (h/fn nil?)]\n                                            [:boolean (h/fn boolean?)]\n                                            [:number (h/fn number?)]\n                                            [:text (h/fn string?)])])]\n    (h/ref 'hiccup)))\n\n(valid? hiccup-model [:div {:class [:foo :bar]}\n                      [:p \"Hello, world of data\"]])\n;=\u003e true\n\n(describe hiccup-model [:div {:class [:foo :bar]}\n                        [:p \"Hello, world of data\"]])\n;=\u003e [:node {:name :div\n;           :props [[[:class [:foo :bar]]]]\n;           :children [[:node {:name :p\n;                              :props []\n;                              :children [[:primitive [:text \"Hello, world of data\"]]]}]]}]\n```\n\n## Features\n\n- validates, parses and generates data,\n- fully data driven, models are hash-map based created via helpers,\n- support recursive definitions and sequence regex,\n- no macro, no static registry, pure functions,\n- relatively simple implementation, easy to read and modify,\n- cross platform (`.cljc`),\n- `valid?` and `describe` run in [Babashka](https://github.com/borkdude/babashka)\n\n## Non-goals (for now)\n\n- does not integrate with anything else,\n- does not try hard to be performant\n\n## Documentation\n\nSee the [latest documentation on cljdoc](https://cljdoc.org/d/minimallist/minimallist/CURRENT) for:\n- A general description of the Minimallist project.\n- How to use the helpers to build your models.\n- How to validate, parse and generate your data.\n\n## Status\n\nThis is a work in progress, the API may change in the future.\n\nMore functionalities will be added later, once the API design is more stable.\n\nIf you find any bug or have comments, please create an issue in GitHub.\n\n## License\n\nThe Minimallist library is developed by Vincent Cantin.\nIt is distributed under the terms of the Eclipse Public License version 2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreen-coder%2Fminimallist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreen-coder%2Fminimallist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreen-coder%2Fminimallist/lists"}