{"id":14977600,"url":"https://github.com/holon-platform/holon-core","last_synced_at":"2025-10-28T04:31:48.743Z","repository":{"id":57724996,"uuid":"84827190","full_name":"holon-platform/holon-core","owner":"holon-platform","description":"Holon Platform Core module: represents the platform foundation, providing the definition of the overall architecture, base structures and APIs.","archived":false,"fork":false,"pushed_at":"2025-06-11T09:10:46.000Z","size":2940,"stargazers_count":14,"open_issues_count":6,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-11T12:35:08.345Z","etag":null,"topics":["authentication","authentication-backend","authorization","bom","context","core","datastore","holon","holon-platform","http","java","maven-bom","properties","rest","spring","spring-boot","spring-security","web-application","web-framework"],"latest_commit_sha":null,"homepage":"https://holon-platform.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/holon-platform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-03-13T13:03:58.000Z","updated_at":"2025-06-12T09:09:44.000Z","dependencies_parsed_at":"2024-01-16T12:47:27.259Z","dependency_job_id":"3bdf0d02-8787-4278-a57a-799d4483b495","html_url":"https://github.com/holon-platform/holon-core","commit_stats":{"total_commits":536,"total_committers":7,"mean_commits":76.57142857142857,"dds":"0.21082089552238803","last_synced_commit":"a70071e118c32593b84cbe9e1bf0d2b5de31ea28"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/holon-platform/holon-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holon-platform%2Fholon-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holon-platform%2Fholon-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holon-platform%2Fholon-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holon-platform%2Fholon-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/holon-platform","download_url":"https://codeload.github.com/holon-platform/holon-core/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holon-platform%2Fholon-core/sbom","scorecard":{"id":467962,"data":{"date":"2025-08-11","repo":{"name":"github.com/holon-platform/holon-core","commit":"b0d0385eb8b9e3ad1dabd2136afe179bdde191fe"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"4 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T13:00:03.011Z","repository_id":57724996,"created_at":"2025-08-19T13:00:03.011Z","updated_at":"2025-08-19T13:00:03.011Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281386564,"owners_count":26492014,"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","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["authentication","authentication-backend","authorization","bom","context","core","datastore","holon","holon-platform","http","java","maven-bom","properties","rest","spring","spring-boot","spring-security","web-application","web-framework"],"created_at":"2024-09-24T13:55:58.182Z","updated_at":"2025-10-28T04:31:48.567Z","avatar_url":"https://github.com/holon-platform.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Holon platform Core module\r\n\r\n\u003e Latest release: [6.0.0](#obtain-the-artifacts)\r\n\r\nThis is the __core__ module of the [Holon Platform](https://holon-platform.com) and represents the platform foundation, providing the definition of the overall architecture, base structures and APIs.\r\n\r\nThe module highlights are:\r\n\r\n* `Context` resources\r\n* Configuration APIs\r\n* Data _validation_ APIs\r\n* Localization and Internationalization support\r\n* The `Property` model and the `Datastore` API\r\n* Java Beans support\r\n* RESTful Java client\r\n* Authentication and authorization\r\n* [JSON Web Tokens](https://jwt.io) (`JWT`) support\r\n* [Spring](https://spring.io), [Spring Security](https://projects.spring.io/spring-security) and [Spring Boot](https://projects.spring.io/spring-boot/) integration\r\n* Spring _tenant_ scope \r\n\r\nSee the module [documentation](https://docs.holon-platform.com/current/reference/holon-core.html) for details.\r\n\r\nJust like any other platform module, this artifact is part of the [Holon Platform](https://holon-platform.com) ecosystem, but can be also used as a _stand-alone_ library.\r\n\r\nSee [Getting started](#getting-started) and the [platform documentation](https://docs.holon-platform.com/current/reference) for further details.\r\n\r\n## At-a-glance overview\r\n\r\n_Property model definition:_\r\n```java\r\npublic interface Subject {\r\n\r\n\tstatic NumericProperty\u003cLong\u003e ID = NumericProperty.longType(\"id\");\r\n\tstatic StringProperty NAME = StringProperty.create(\"name\");\r\n\tstatic StringProperty SURNAME = StringProperty.create(\"surname\");\r\n\tstatic TemporalProperty\u003cLocalDate\u003e BIRTH = TemporalProperty.localDate(\"birth\");\r\n\tstatic BooleanProperty ACTIVE = BooleanProperty.create(\"active\");\r\n\tstatic VirtualProperty\u003cString\u003e FULL_NAME = VirtualProperty.create(String.class,\r\n\t\t\tpropertyBox -\u003e propertyBox.getValue(NAME) + \" \" + propertyBox.getValue(SURNAME));\r\n\t\r\n\tstatic PropertySet\u003c?\u003e SUBJECT = PropertySet.of(ID, NAME, SURNAME, BIRTH, ACTIVE, FULL_NAME);\r\n\r\n}\r\n```\r\n\r\n_Property configuration:_\r\n```java\r\nstatic StringProperty NAME = StringProperty.create(\"name\").message(\"Name\").messageCode(\"localization.name\")\r\n\t\t\t.withConfiguration(\"my-config\", \"my-value\");\r\n```\r\n\r\n_Property value converter:_\r\n```java\r\nstatic StringProperty INTEGER_MODEL = StringProperty.create(\"integer_value\").converter(Integer.class,\r\n\t\t\tinteger -\u003e String.valueOf(integer), string -\u003e Integer.valueOf(string));\r\n```\r\n\r\n_Property validators:_\r\n```java\r\nstatic StringProperty NAME = StringProperty.create(\"name\")\r\n\t\t\t.withValidator(Validator.notBlank()).withValidator(Validator.max(50));\r\n```\r\n\r\n_Property presenters and renderers:_\r\n```java\r\nString value = NAME.present(\"A value\");\r\nMyType myType = NAME.render(MyType.class);\r\n```\r\n\r\n_PropertyBox:_\r\n```java\r\nPropertyBox propertyBox = PropertyBox.create(SUBJECT);\r\n\t\t\r\nString name = propertyBox.getValue(NAME);\r\nOptional\u003cString\u003e oname = propertyBox.getValueIfPresent(NAME);\r\npropertyBox.setValue(NAME, \"John\");\r\npropertyBox.propertyValues().forEach(propertyValue -\u003e {\r\n\tProperty\u003c?\u003e property = propertyValue.getProperty();\r\n\tObject value = propertyValue.getValue();\r\n});\r\n```\r\n\r\n_Datastore:_\r\n```java\r\nDataTarget\u003c?\u003e TARGET = DataTarget.named(\"subjects\");\r\nDatastore datastore = getDatastore();\r\n\r\nStream\u003cPropertyBox\u003e results = datastore.query().target(TARGET)\r\n\t.filter(NAME.contains(\"a\").and(SURNAME.isNotNull())).sort(BIRTH.desc()).stream(SUBJECT);\r\n\r\nStream\u003cString\u003e names = datastore.query(TARGET).aggregate(SURNAME).stream(NAME.max());\r\n\r\nOptional\u003cString\u003e name = datastore.query(TARGET).filter(ID.eq(1L)).findOne(NAME);\r\n\r\ndatastore.insert(TARGET, PropertyBox.builder(SUBJECT).set(ID, 1L).set(NAME, \"John\").set(ACTIVE, true).build());\r\ndatastore.bulkUpdate(TARGET).set(ACTIVE, true).filter(BIRTH.lt(LocalDate.now())).execute();\r\n\r\ndatastore.query(TARGET).filter(ID.eq(1L)).findOne(SUBJECT).ifPresent(subject -\u003e datastore.delete(TARGET, subject));\r\n```\r\n\r\n_Bean PropertySet and Datastore:_\r\n```java\r\nclass MyBean {\r\n\tprivate @NotNull Long id;\r\n\tprivate @Caption(\"The name\") String name;\r\n\tprivate @Caption(\"The surname\") String surname;\r\n\t/* getters and setters omitted */\r\n}\r\n\r\nBeanPropertySet\u003cMyBean\u003e propertySet = BeanPropertySet.create(MyBean.class);\r\n\t\t\r\nPathProperty\u003c?\u003e name = propertySet.property(\"name\");\r\nPathProperty\u003cString\u003e typedName = propertySet.property(\"name\", String.class);\r\n\t\t\r\nBeanDatastore datastore = BeanDatastore.of(getDatastore());\r\n\t\t\r\nStream\u003cMyBean\u003e results = datastore.query(MyBean.class).filter(propertySet.property(\"name\").eq(\"John\")).stream();\r\n\t\t\r\ndatastore.save(new MyBean());\r\n```\r\n\r\n_Realm:_\r\n```java\r\nRealm realm = Realm.builder().withAuthenticator(Authenticator.create(MyAuthenticationToken.class, token -\u003e {\r\n\tif (\"test\".equals(token.getPrincipal())) {\r\n\t\treturn Authentication.builder(\"test\").withPermission(\"ROLE1\").build();\r\n\t}\r\n\tthrow new UnknownAccountException();\r\n}))\r\n.withDefaultAuthorizer().build();\r\n\r\nRealm.builder().withAuthenticator(Account.authenticator(id -\u003e Optional.of(Account.builder(id).build()))).build();\r\n```\r\n\r\n_AuthContext:_\r\n```java\r\nAuthContext context = AuthContext.create(realm);\r\ncontext.authenticate(AuthenticationToken.accountCredentials(\"test\", \"pwd\"));\r\n\t\t\r\nOptional\u003cAuthentication\u003e authentication = context.getAuthentication();\r\nboolean permitted = context.isPermitted(\"ROLE1\", \"ROLE2\");\r\n```\r\n\r\n_RestClient:_\r\n```java\r\nRestClient client = RestClient.forTarget(\"https://rest.api.example\");\r\n\t\t\r\nResponseEntity\u003cTestData\u003e response = client.request()\r\n\t.path(\"test/{id}\").resolve(\"id\", 123)\r\n\t.accept(MediaType.APPLICATION_JSON)\r\n\t.header(\"MY_HEADER\", \"my-value\")\r\n\t.authorizationBearer(\"An389fz56xsr7\")\r\n\t.get(TestData.class);\r\nHttpStatus status = response.getStatus();\r\nOptional\u003cTestData\u003e payload = response.getPayload();\r\n\t\t\r\nOptional\u003cTestData\u003e data = client.request().path(\"test/{id}\").resolve(\"id\", 123)\r\n\t\t\t\t.getForEntity(TestData.class);\r\n\t\t\r\nList\u003cTestData\u003e results = client.request().path(\"test\").getAsList(TestData.class);\r\n\t\t\r\nclient.request().path(\"test\").post(RequestEntity.json(new TestData()));\r\n\t\t\r\nOptional\u003cPropertyBox\u003e propertyBox = client.request().path(\"test2\")\r\n\t\t\t\t.propertySet(PROPERTIES).getForEntity(PropertyBox.class); \r\n```\r\n\r\n_LocalizationContext:_\r\n```java\r\nLocalizationContext localizationContext = LocalizationContext.builder()\r\n\t.withMessageProvider(MessageProvider.fromProperties(\"messages\").build())\r\n\t.withDefaultDateTemporalFormat(TemporalFormat.MEDIUM)\r\n\t.withInitialLocale(Locale.US)\r\n\t.build();\r\n\t\t\r\nlocalizationContext.localize(Locale.ITALY);\r\n\t\t\r\nString localized = localizationContext.getMessage(\"message.code\", \"Default message\");\r\n\t\t\r\nString formatted = localizationContext.format(LocalDate.now());\r\nformatted = localizationContext.format(123.4d);\r\n\t\t\r\nOptional\u003cLocalizationContext\u003e current = LocalizationContext.getCurrent();\r\n```\r\n\r\nSee the [module documentation](https://docs.holon-platform.com/current/reference/holon-core.html) for the user guide and a full set of examples.\r\n\r\n## Code structure\r\n\r\nSee [Holon Platform code structure and conventions](https://github.com/holon-platform/platform/blob/master/CODING.md) to learn about the _\"real Java API\"_ philosophy with which the project codebase is developed and organized.\r\n\r\n## Getting started\r\n\r\n### System requirements\r\n\r\nThe Holon Platform is built using __Java 21__, so you need a JRE/JDK version 21 or above to use the platform artifacts.\r\n\r\n### Releases\r\n\r\nSee [releases](https://github.com/holon-platform/holon-core/releases) for the available releases. Each release tag provides a link to the closed issues.\r\n\r\n### Obtain the artifacts\r\n\r\nThe [Holon Platform](https://holon-platform.com) is open source and licensed under the [Apache 2.0 license](LICENSE.md). All the artifacts (including binaries, sources and javadocs) are available from the [Maven Central](https://mvnrepository.com/repos/central) repository.\r\n\r\nThe Maven __group id__ for this module is `com.holon-platform.core` and a _BOM (Bill of Materials)_ is provided to obtain the module artifacts:\r\n\r\n_Maven BOM:_\r\n```xml\r\n\u003cdependencyManagement\u003e\r\n    \u003cdependency\u003e\r\n        \u003cgroupId\u003ecom.holon-platform.core\u003c/groupId\u003e\r\n        \u003cartifactId\u003eholon-bom\u003c/artifactId\u003e\r\n        \u003cversion\u003e6.0.0\u003c/version\u003e\r\n        \u003ctype\u003epom\u003c/type\u003e\r\n        \u003cscope\u003eimport\u003c/scope\u003e\r\n    \u003c/dependency\u003e\r\n\u003c/dependencyManagement\u003e\r\n```\r\n\r\nSee the [Artifacts list](#artifacts-list) for a list of the available artifacts of this module.\r\n\r\n### Using the Platform BOM\r\n\r\nThe [Holon Platform](https://holon-platform.com) provides an overall Maven _BOM (Bill of Materials)_ to easily obtain all the available platform artifacts:\r\n\r\n_Platform Maven BOM:_\r\n```xml\r\n\u003cdependencyManagement\u003e\r\n    \u003cdependency\u003e\r\n        \u003cgroupId\u003ecom.holon-platform\u003c/groupId\u003e\r\n        \u003cartifactId\u003ebom\u003c/artifactId\u003e\r\n        \u003cversion\u003e${platform-version}\u003c/version\u003e\r\n        \u003ctype\u003epom\u003c/type\u003e\r\n        \u003cscope\u003eimport\u003c/scope\u003e\r\n    \u003c/dependency\u003e\r\n\u003c/dependencyManagement\u003e\r\n```\r\n\r\nSee the [Artifacts list](#artifacts-list) for a list of the available artifacts of this module.\r\n\r\n### Build from sources\r\n\r\nYou can build the sources using Maven (version 3.3.x or above is recommended) like this: \r\n\r\n`mvn clean install`\r\n\r\n## Getting help\r\n\r\n* Check the [platform documentation](https://docs.holon-platform.com/current/reference) or the specific [module documentation](https://docs.holon-platform.com/current/reference/holon-core.html).\r\n\r\n* Ask a question on [Stack Overflow](http://stackoverflow.com). We monitor the [`holon-platform`](http://stackoverflow.com/tags/holon-platform) tag.\r\n\r\n* Report an [issue](https://github.com/holon-platform/holon-core/issues).\r\n\r\n* A [commercial support](https://holon-platform.com/services) is available too.\r\n\r\n## Examples\r\n\r\nSee the [Holon Platform examples](https://github.com/holon-platform/holon-examples) repository for a set of example projects.\r\n\r\n## Contribute\r\n\r\nSee [Contributing to the Holon Platform](https://github.com/holon-platform/platform/blob/master/CONTRIBUTING.md).\r\n\r\n[![Gitter chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/holon-platform/contribute?utm_source=share-link\u0026utm_medium=link\u0026utm_campaign=share-link) \r\nJoin the __contribute__ Gitter room for any question and to contact us.\r\n\r\n## License\r\n\r\nAll the [Holon Platform](https://holon-platform.com) modules are _Open Source_ software released under the [Apache 2.0 license](LICENSE).\r\n\r\n## Artifacts list\r\n\r\nMaven _group id_: `com.holon-platform.core`\r\n\r\nArtifact id | Description\r\n----------- | -----------\r\n`holon-core` | Platform core components, services and APIs\r\n`holon-http` | HTTP messages support\r\n`holon-async-http` | Asynchronous HTTP messages support\r\n`holon-async-datastore` | Asynchronous Datastore API\r\n`holon-auth` | Authentication and Authorization\r\n`holon-auth-jwt` | JSON Web Tokens support \r\n`holon-spring` | Spring integration\r\n`holon-spring-security` | Spring Security integration\r\n`holon-spring-boot` | Spring Boot integration\r\n`holon-starter` | Base Spring Boot starter\r\n`holon-starter-security` | Base Spring Boot starter with Spring Security integration\r\n`holon-starter-test` | Base Spring Boot starter for Unit tests\r\n`holon-bom` | Bill Of Materials\r\n`holon-bom-platform` | Bill Of Materials including external dependencies\r\n`documentation-core` | Documentation\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholon-platform%2Fholon-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fholon-platform%2Fholon-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholon-platform%2Fholon-core/lists"}