{"id":13446861,"url":"https://github.com/sifrr/sifrr","last_synced_at":"2025-04-04T17:04:14.806Z","repository":{"id":43867245,"uuid":"122309703","full_name":"sifrr/sifrr","owner":"sifrr","description":":zap: Set of tiny, independent libraries for creating modern and fast webapps with javascript/typescript","archived":false,"fork":false,"pushed_at":"2023-02-23T03:22:29.000Z","size":25573,"stargazers_count":337,"open_issues_count":48,"forks_count":20,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-12T00:02:13.719Z","etag":null,"topics":["backend","fast","framework","frontend","fullstack","javascript","libraries","minimal","nodejs","server","sifrr","ui"],"latest_commit_sha":null,"homepage":"https://sifrr.github.io/sifrr/","language":"HTML","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/sifrr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":["aadityataparia"],"patreon":null,"open_collective":null}},"created_at":"2018-02-21T08:24:15.000Z","updated_at":"2025-03-05T15:55:16.000Z","dependencies_parsed_at":"2023-09-23T14:34:44.922Z","dependency_job_id":null,"html_url":"https://github.com/sifrr/sifrr","commit_stats":{"total_commits":1636,"total_committers":13,"mean_commits":"125.84615384615384","dds":"0.10085574572127143","last_synced_commit":"0a53e2016f5bfe8b4237408d1d58b011fec627cd"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sifrr%2Fsifrr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sifrr%2Fsifrr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sifrr%2Fsifrr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sifrr%2Fsifrr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sifrr","download_url":"https://codeload.github.com/sifrr/sifrr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217174,"owners_count":20903008,"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":["backend","fast","framework","frontend","fullstack","javascript","libraries","minimal","nodejs","server","sifrr","ui"],"created_at":"2024-07-31T05:01:01.750Z","updated_at":"2025-04-04T17:04:14.790Z","avatar_url":"https://github.com/sifrr.png","language":"HTML","readme":"\u003ch1 align=\"center\"\u003e \u003cimg src=\"./logo/sifrr-logo.svg\" width=\"256\" alt=\"sifrr\" name=\"sifrr\"\u003e \u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sifrr/sifrr/blob/master/LICENSE\"\u003e\u003ca href=\"https://opencollective.com/sifrr-oc\" alt=\"Financial Contributors on Open Collective\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/all/badge.svg?label=financial+contributors\" /\u003e\u003c/a\u003e \u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\" alt=\"GitHub license\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://circleci.com/gh/sifrr/sifrr\"\u003e\u003cimg alt=\"CircleCI (all branches)\" src=\"https://img.shields.io/circleci/project/github/sifrr/sifrr/master.svg?logo=circleci\u0026style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@sifrr/dom\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@sifrr/dom.svg?style=flat-square\" alt=\"npm version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"./misc/CONTRIBUTING.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRs-Welcome-green.svg?style=flat-square\" alt=\"PRs Welcome\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://app.fossa.com/projects/git%2Bgithub.com%2Fsifrr%2Fsifrr?ref=badge_small\" alt=\"FOSSA Status\"\u003e\u003cimg src=\"https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsifrr%2Fsifrr.svg?type=small\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://coveralls.io/github/sifrr/sifrr?branch=master\"\u003e\u003cimg src=\"https://img.shields.io/coveralls/github/sifrr/sifrr.svg?style=flat-square\" alt=\"Coverage Status\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://dependabot.com/\"\u003e\u003cimg src=\"https://badgen.net/badge/Dependabot/enabled/green?icon=dependabot\" alt=\"Dependabot badge\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://lgtm.com/projects/g/sifrr/sifrr/alerts/\"\u003e\u003cimg alt=\"LGTM\" src=\"https://img.shields.io/lgtm/grade/javascript/g/sifrr/sifrr.svg?logo=lgtm\u0026style=flat-square\u0026logoWidth=18\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://sifrr.github.io/sifrr/\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"./CHANGELOG.md\"\u003eChangelog\u003c/a\u003e | \u003ca href=\"./misc/CONTRIBUTORS\"\u003eContributors\u003c/a\u003e | \u003ca href=\"./misc/CONTRIBUTING.md\"\u003eContributing guidelines\u003c/a\u003e | \u003ca href=\"./misc/CODE_OF_CONDUCT.md\"\u003eCode of Conduct\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e sifrr is a set of tiny, customizable, independent libraries for creating modern and fast webapps using JavaScript.\n\n## Repository Info\n\nThis repository is a monorepo managed using yarn workspaces. This means there are [multiple packages](#packages) managed in this codebase, even though they are published to NPM as separate packages. They will always have same latest version and are released together.\n\nNote that for 0.x releases of this library, the API is not considered stable yet and may break between minor releases. After 1.0, Semantic Versioning will be followed.\n\n## Packages\n\n### Browser (VanillaJS)\n\n| Package                                                        | Description                                                                                                    | NPM                                                                                                                         | Documentation                                                                                                                                  |                       Tests                       |\n| :------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------: |\n| [sifrr-dom](./packages/browser/sifrr-dom/)                     | Small Library to build UIs with custom elements                                                                | [![npm version](https://img.shields.io/npm/v/@sifrr/dom.svg)](https://www.npmjs.com/package/@sifrr/dom)                     | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/browser/sifrr-dom/)           |      [OK](./packages/browser/sifrr-dom/test)      |\n| [sifrr-template](./packages/browser/sifrr-template/)           | :zap: Fast HTML-JS Templating engine used in sifrr-dom                                                         | [![npm version](https://img.shields.io/npm/v/@sifrr/template.svg)](https://www.npmjs.com/package/@sifrr/template)           | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/browser/sifrr-template/)      |   [OK](./packages/browser/sifrr-template/test)    |\n| [sifrr-fetch](./packages/browser/sifrr-fetch/)                 | Wrapper library for Browser fetch API can be used in node too                                                  | [![npm version](https://img.shields.io/npm/v/@sifrr/fetch.svg)](https://www.npmjs.com/package/@sifrr/fetch)                 | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/browser/sifrr-fetch/)         |     [OK](./packages/browser/sifrr-fetch/test)     |\n| [sifrr-route](./packages/browser/sifrr-route/)                 | Routing for sifrr-dom                                                                                          | [![npm version](https://img.shields.io/npm/v/@sifrr/route.svg)](https://www.npmjs.com/package/@sifrr/route)                 | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/browser/sifrr-route/)         |     [OK](./packages/browser/sifrr-route/test)     |\n| [sifrr-serviceworker](./packages/browser/sifrr-serviceworker/) | Service worker wrapper library                                                                                 | [![npm version](https://img.shields.io/npm/v/@sifrr/serviceworker.svg)](https://www.npmjs.com/package/@sifrr/serviceworker) | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/browser/sifrr-serviceworker/) | [OK](./packages/browser/sifrr-serviceworker/test) |\n| [sifrr-storage](./packages/browser/sifrr-storage/)             | Browser persisted storage library (2kb alternate to [localforage](https://github.com/localForage/localForage)) | [![npm version](https://img.shields.io/npm/v/@sifrr/storage.svg)](https://www.npmjs.com/package/@sifrr/storage)             | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/browser/sifrr-storage/)       |    [OK](./packages/browser/sifrr-storage/test)    |\n\n`sifrr-dom`, `sifrr-template`, `sifrr-fetch`, `sifrr-serviceworker`, `sifrr-storage` can be used independently. `sifrr-route` is a `sifrr-dom` element, hence it should be used with `sifrr-dom`.\n\n### Server (NodeJS)\n\n| Package                                         | Description                                            | NPM                                                                                                           | Documentation                                                                                                                          |                   Tests                   |\n| :---------------------------------------------- | :----------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------: |\n| [sifrr-api](./packages/server/sifrr-api/)       | Create normal/GraphQL APIs with same codebase          | [![npm version](https://img.shields.io/npm/v/@sifrr/api.svg)](https://www.npmjs.com/package/@sifrr/api)       | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/server/sifrr-api/)    |  [OK](./packages/server/sifrr-api/test)   |\n| [sifrr-cli](./packages/server/sifrr-cli/)       | Sifrr cli for creating webapps using sifrr             | [![npm version](https://img.shields.io/npm/v/@sifrr/cli.svg)](https://www.npmjs.com/package/@sifrr/cli)       | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/server/sifrr-cli/)    |                  \\[WIP]                   |\n| [sifrr-seo](./packages/server/sifrr-seo/)       | Server side pre-rendering using puppeteer with caching | [![npm version](https://img.shields.io/npm/v/@sifrr/seo.svg)](https://www.npmjs.com/package/@sifrr/seo)       | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/server/sifrr-seo/)    |  [OK](./packages/server/sifrr-seo/test)   |\n| [sifrr-server](./packages/server/sifrr-server/) | Fast HTTP + WebSockets server                          | [![npm version](https://img.shields.io/npm/v/@sifrr/server.svg)](https://www.npmjs.com/package/@sifrr/server) | [![Doscify](https://img.shields.io/badge/API%20docs-Docsify-red.svg)](https://sifrr.github.io/sifrr/#/./packages/server/sifrr-server/) | [OK](./packages/server/sifrr-server/test) |\n\n`sifrr-api`, `sifrr-seo`, `sifrr-server` can be used independently. `sifrr-cli` has functionalities which can be used with sequelize projects, `sifrr-api` projects and `sifrr-dom` projects.\n\n## Usage\n\nAll the packages can be used with node, es6 modules, and are compatible with bundler of your choice (rollup, webpack, browserify)\n\n### commonJS (node)\n\n```js\nconst SifrrDom = require('@sifrr/dom');\n```\n\n### ES6 modules (`import`)\n\n```js\nimport SifrrDom from '@sifrr/dom'; // default export\nimport { Element } from '@sifrr/dom'; // named export\n```\n\n### standalone distributions (browser packages only)\n\nFor eg.\n\n```html\n\u003cscript src=\"https://unpkg.com/@sifrr/dom@{version}/dist/sifrr.dom.min.js\"\u003e\u003c/script\u003e\n// for v0.0.3\n\u003cscript src=\"https://unpkg.com/@sifrr/dom@0.0.3/dist/sifrr.dom.min.js\"\u003e\u003c/script\u003e\n// this sets window.Sifrr.Dom as sifrr-dom, same for other packages\n```\n\n### Packages that have tests have a working example of that package in `test/public` folder\n\n## Node support (server packages and development)\n\nSifrr officially supports node v10, v12 (LTS), v13 (current). Other versions might work for some packages.\n\n## Browser Support (browser packages)\n\nSifrr browser packages officially supports these browser versions (for dist files):\n\n| Browser               | Version |\n| :-------------------- | :------ |\n| Chrome                | \u003e= 55   |\n| Android Chrome        | \u003e= 55   |\n| Firefox               | \u003e= 63   |\n| Android Firefox       | \u003e= 63   |\n| Opera                 | \u003e= 42   |\n| Safari                | \u003e= 10.1 |\n| Safari (iOS browsers) | \u003e= 10.1 |\n\nIndividual libraries may support older versions too with polyfills listed in docs, or by bundling it with polyfills using babel etc.\n\nApproximately amounts to ~90% of total worldwide browser usage.\n\nTo support mini browsers (opera mini, uc browser etc.), You can use sifrr-seo to provide server side rendering.\n\n## Contributors\n\n### Code Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n\u003ca href=\"https://github.com/sifrr/sifrr/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/sifrr-oc/contribute)]\n\n#### Individuals\n\n\u003ca href=\"https://opencollective.com/sifrr-oc\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/individuals.svg?width=890\"\u003e\u003c/a\u003e\n\n#### Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/sifrr-oc/contribute)]\n\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/0/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/1/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/2/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/3/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/4/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/5/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/6/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/7/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/8/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/sifrr-oc/organization/9/website\"\u003e\u003cimg src=\"https://opencollective.com/sifrr-oc/organization/9/avatar.svg\"\u003e\u003c/a\u003e\n\n## License\n\nSifrr is [MIT Licensed](./LICENSE).\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsifrr%2Fsifrr.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fsifrr%2Fsifrr?ref=badge_large)\n\n(c) [@aadityataparia](https://github.com/aadityataparia)\n","funding_links":["https://github.com/sponsors/aadityataparia","https://opencollective.com/sifrr-oc","https://opencollective.com/sifrr-oc/contribute","https://opencollective.com/sifrr-oc/organization/0/website","https://opencollective.com/sifrr-oc/organization/1/website","https://opencollective.com/sifrr-oc/organization/2/website","https://opencollective.com/sifrr-oc/organization/3/website","https://opencollective.com/sifrr-oc/organization/4/website","https://opencollective.com/sifrr-oc/organization/5/website","https://opencollective.com/sifrr-oc/organization/6/website","https://opencollective.com/sifrr-oc/organization/7/website","https://opencollective.com/sifrr-oc/organization/8/website","https://opencollective.com/sifrr-oc/organization/9/website"],"categories":["HTML"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsifrr%2Fsifrr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsifrr%2Fsifrr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsifrr%2Fsifrr/lists"}