{"id":20885745,"url":"https://github.com/julindm/firestore-rules-lsp","last_synced_at":"2026-04-19T22:12:21.705Z","repository":{"id":220741851,"uuid":"751119157","full_name":"JulindM/firestore-rules-lsp","owner":"JulindM","description":"Language server provider for the Firestore Security Rules language","archived":false,"fork":false,"pushed_at":"2026-04-17T23:24:33.000Z","size":609,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-18T01:24:11.140Z","etag":null,"topics":["firebase","firestore","lsp"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JulindM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-01T00:52:07.000Z","updated_at":"2026-04-17T23:24:37.000Z","dependencies_parsed_at":"2026-01-06T23:02:35.279Z","dependency_job_id":null,"html_url":"https://github.com/JulindM/firestore-rules-lsp","commit_stats":null,"previous_names":["julindm/firestore-rules-lsp"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/JulindM/firestore-rules-lsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulindM%2Ffirestore-rules-lsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulindM%2Ffirestore-rules-lsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulindM%2Ffirestore-rules-lsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulindM%2Ffirestore-rules-lsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JulindM","download_url":"https://codeload.github.com/JulindM/firestore-rules-lsp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulindM%2Ffirestore-rules-lsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32024535,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":["firebase","firestore","lsp"],"created_at":"2024-11-18T08:14:21.671Z","updated_at":"2026-04-19T22:12:21.685Z","avatar_url":"https://github.com/JulindM.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Firestore Rules Language Server Provider\n\n#### A LSP implementation for the [Firestore Security Rules Language](https://firebase.google.com/docs/rules/rules-language#firestore)\n\nThis LSP implementation is standalone and does not require the Firebase Admin SDK toolchain to parse a firestore rules document. It uses its own tree sitter based grammar currently maintaned in the [tree](https://github.com/JulindM/firestore-rules-lsp/tree/main/tree-sitter-firestore_rules).\n\n---\n\n### Usage\n\nThe server supports communicating over STDIO or TCP. Starting the server without any parameters will start it over STDIO.\n\n#### Over TCP:\n\nTo start the server over TCP, you need to have a client started and already bound to `\u003cPORT_NUMBER\u003e` awaiting the server capabilities to be sent. If this is the case then run\n\n```sh\n$ firestore-rules-lsp --socket=\u003cPORT_NUMBER\u003e\n```\n\nfor the lsp to initialize the connection\n\n### Current capabilites\n\n- Dynamic Type inference\n- Text Document Synchronization\n- Semantic Tokens Provider\n- Definition Provider\n- Publish Diagnostics Notifications\n- Hover\n- Autocomplete\n- Linting\n  - Diagnostics of variable usages that no definiton was found for them\n  - Diagnostics of function calls that no definition was found for them\n  - Diagnostics on rules that do not resolve to a boolean value\n\n### Also check out\n\nCurrently there is a VSCode extension in the works that simply wraps around this LSP to enable it in VSCode.\n\n_Check it out [here](https://github.com/JulindM/firestore-rules-lsp-vscode)._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulindm%2Ffirestore-rules-lsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulindm%2Ffirestore-rules-lsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulindm%2Ffirestore-rules-lsp/lists"}