{"id":15060863,"url":"https://github.com/freymaurer/siren","last_synced_at":"2025-08-18T20:44:17.345Z","repository":{"id":242683045,"uuid":"785683640","full_name":"Freymaurer/Siren","owner":"Freymaurer","description":"A domain specific language (DSL) for creating mermaid graph YAML!","archived":false,"fork":false,"pushed_at":"2024-06-12T19:06:50.000Z","size":9897,"stargazers_count":29,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T08:04:03.156Z","etag":null,"topics":["csharp","fable","fable-dotnet","fable-javascript","fable-libraries","fable-python","fsharp","javascript","mermaid","mermaid-diagrams","python","typescript"],"latest_commit_sha":null,"homepage":"https://freymaurer.github.io/Siren/","language":"F#","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/Freymaurer.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":"2024-04-12T12:00:15.000Z","updated_at":"2025-03-17T23:53:50.000Z","dependencies_parsed_at":"2024-06-13T00:39:10.214Z","dependency_job_id":"9d835622-6bf6-4df4-b693-2ff2d65c0be9","html_url":"https://github.com/Freymaurer/Siren","commit_stats":null,"previous_names":["freymaurer/siren"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freymaurer%2FSiren","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freymaurer%2FSiren/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freymaurer%2FSiren/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freymaurer%2FSiren/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Freymaurer","download_url":"https://codeload.github.com/Freymaurer/Siren/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166925,"owners_count":21058481,"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":["csharp","fable","fable-dotnet","fable-javascript","fable-libraries","fable-python","fsharp","javascript","mermaid","mermaid-diagrams","python","typescript"],"created_at":"2024-09-24T23:05:33.273Z","updated_at":"2025-04-10T06:11:57.107Z","avatar_url":"https://github.com/Freymaurer.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Siren\n\nSiren is a simple DSL for creating [Mermaid](https://mermaid.js.org) graphs YAML.\n\nHave a look at the docs here:\n\n* [Docs](https://freymaurer.github.io/Siren/)\n* [Blog post](https://freymaurer.github.io/Siren/blog/Library%20Design)\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eLatest Release\u003c/th\u003e\n      \u003cth\u003eDownloads\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://pypi.org/project/siren-dsl/\"\u003e\n          \u003cimg src=\"https://img.shields.io/pypi/v/siren-dsl?logo=pypi\" alt=\"latest release\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://pepy.tech/project/siren-dsl\"\u003e\n          \u003cimg alt=\"Pepy Total Downlods\" src=\"https://img.shields.io/pepy/dt/siren-dsl?label=siren-dsl\u0026color=blue\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c!-- js package --\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://www.npmjs.com/package/siren-dsl\"\u003e\n          \u003cimg src=\"https://img.shields.io/npm/v/siren-dsl?logo=npm\" alt=\"latest release\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://www.npmjs.com/package/siren-dsl\"\u003e\n          \u003cimg src=\"https://img.shields.io/npm/dt/siren-dsl?label=siren-dsl\" alt=\"downloads\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c!-- f# nuget package --\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Siren/\"\u003e\n          \u003cimg src=\"https://img.shields.io/nuget/v/Siren?logo=nuget\" alt=\"latest release\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Siren/\"\u003e\n          \u003cimg src=\"https://img.shields.io/nuget/dt/Siren?label=Siren\" alt=\"downloads\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003c!-- c# nuget package \"Siren.Sea\" --\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Siren.Sea/\"\u003e\n          \u003cimg src=\"https://img.shields.io/nuget/v/Siren.Sea?logo=nuget\" alt=\"latest release\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd\u003e\n        \u003ca href=\"https://www.nuget.org/packages/Siren.Sea/\"\u003e\n          \u003cimg src=\"https://img.shields.io/nuget/dt/Siren.Sea?label=Siren.Sea\" alt=\"downloads\" /\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\n\u003c/table\u003e\n\n\n\u003e [!TIP]\n\u003e if you are interested in creating a Fable library like this on your own you can use the template [Fable.Multiverse](https://github.com/Freymaurer/Fable.Multiverse)!\n\n\n---\n## Contribution\n\nIf you have any ideas on how to improve the library, please feel free to contribute! The best way to get in contact is using the issues! \n\n---\n## Local Development\n\n### Requirements\n\nBecause this library targets multiple programming languages we need to support all of them:\n\n- [nodejs and npm](https://nodejs.org/en/download)\n    - verify with `node --version` (Tested with v20.10.0)\n    - verify with `npm --version` (Tested with v9.2.0)\n- [.NET SDK](https://dotnet.microsoft.com/en-us/download)\n    - verify with `dotnet --version` (Tested with 8.0.205)\n- [Python](https://www.python.org/downloads/)\n    - verify with `py --version` (Tested with 3.11.9, known to work only for \u003e=3.11)\n\n### Setup\n\nThis needs to be done on a fresh download once. Paths for python venv executable might be different depending on the OS.\n\n1. `dotnet tool restore`\n2. `npm install`\n3. `py -m venv ./.venv`\n4. `.\\.venv\\Scripts\\Activate.ps1`\n5. `python -m pip install -U pip setuptools`\n6. `python -m pip install poetry`\n7. `python -m poetry install --no-root`\n\n### Testing\n\nFirst activate python virtual environment (`.\\.venv\\Scripts\\Activate.ps1`).\n\n`.\\build.cmd test`\n\n*or specify target*\n\n`.\\build.cmd test [f#, c#, js [native], py [native]]`\n\n### Publish\n\nRequires API keys for Nuget and PyPi. \n\nThe following command will run all tests, bundle and then start publishing!\n\n`.\\build.cmd publish pipeline`\n\n*or only publish specific targets, without test and bundle*\n\n`.\\build.cmd publish [npm, pypi, nuget]`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreymaurer%2Fsiren","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreymaurer%2Fsiren","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreymaurer%2Fsiren/lists"}