{"id":15031925,"url":"https://github.com/bakkdoor/rogato","last_synced_at":"2025-04-10T00:21:33.404Z","repository":{"id":63915479,"uuid":"507202619","full_name":"bakkdoor/rogato","owner":"bakkdoor","description":"A functional, declarative query-oriented programming language with an integrated graph database.","archived":false,"fork":false,"pushed_at":"2024-03-12T08:50:29.000Z","size":1592,"stargazers_count":6,"open_issues_count":8,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T02:05:22.631Z","etag":null,"topics":["databases","functional-language","functional-programming","graph","graph-database","graph-processing","rust-lang","rust-language","rustlang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bakkdoor.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":"2022-06-25T03:21:19.000Z","updated_at":"2023-08-21T10:34:40.000Z","dependencies_parsed_at":"2023-02-19T15:00:34.125Z","dependency_job_id":"595229e1-62c1-4c2c-9ae8-f8af4c784e53","html_url":"https://github.com/bakkdoor/rogato","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkdoor%2Frogato","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkdoor%2Frogato/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkdoor%2Frogato/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakkdoor%2Frogato/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bakkdoor","download_url":"https://codeload.github.com/bakkdoor/rogato/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248132122,"owners_count":21052977,"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":["databases","functional-language","functional-programming","graph","graph-database","graph-processing","rust-lang","rust-language","rustlang"],"created_at":"2024-09-24T20:16:54.059Z","updated_at":"2025-04-10T00:21:33.383Z","avatar_url":"https://github.com/bakkdoor.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rogātō ⌘ 🏷\n\n## A functional, declarative query-oriented programming language with an integrated graph database.\n\n🛠 (Still WIP) 🛠\n\n[![CI](https://github.com/bakkdoor/rogato/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/bakkdoor/rogato/actions/workflows/ci.yml)\n\n## [![rogātō REPL code example](https://img.youtube.com/vi/ddv5kuEufZc/0.jpg)](https://www.youtube.com/watch?v=ddv5kuEufZc)\n\n**rogātō** aims to provide a simple yet powerful functional programming interface to a built-in graph database, powered by [indradb](https://github.com/indradb/indradb).\n\nThe syntax is inspired mostly by languages like Elm, F#, Haskell and Elixir. The goal is to provide a basic standard library for common tasks. The language is still at a very early stage, so a lot is still missing.\n\nMore information will follow here as the language matures.\nFor some example source code and syntax ideas (still WIP), check out the code examples under [examples/](examples/) or the standard library under [lib/](lib/).\n\n### Language design goals\n\n* Simple, typed, memory-safe functional core language for data processing\n* Direct native access to built-in graph database\n* First-class query manipulation support against graph db\n* Symbolic language capabilities for easy knowledge graph construction and querying\n* Easy importing of data from various data formats, ideally provided by std lib\n\n### Build instructions\n\n#### LLVM v14 Dependency\n\n*rogātō* depends on LLVM version 14 to build. LLVM is used by the [`compiler`](compiler/) crate to generate optimized native machine code.\n\nLLVM website with documentation and installation instructions:\n- https://llvm.org\n\nLatest compatible LLVM release:\n- https://github.com/llvm/llvm-project/releases/tag/llvmorg-14.0.6\n\n#### Build without optimizations (debug mode)\n\nBuild with cargo, Rust's package and build manager:\n\n    cargo b\n\n#### Build with optimizations (release mode)\n\n    cargo b -r\n\n#### Build and run tests (debug/test mode)\n\n    cargo t\n\n\n#### Build and run clippy linter\n\n    cargo clippy\n\n#### Build with parser tracing enabled\n\n    cargo b --features trace\n\nThis works also for release builds:\n\n    cargo b -r --features trace\n\nTo get parser tracing viz via pegviz, run:\n\n    ./target/release/rogato examples/query.roga | pegviz --output pegviz.html\n\nThen open pegviz.html to view parser tracing visualization.\n\n### Q\u0026A\n\n#### Why?\n\nI needed a project to learn Rust with. I always have been interested in graph databases and their applications to data problems and have been fascinated by what declarative programming can do for simplicity in querying large data sets.  \n**rogātō** aims to unify some ideas and properties from functional and logic programming as well as graph databases into something new and cohesive that is fun and productive to use and can aid in discovering interesting facts about large data sets.\n\n#### What does the name mean?\n\n**rogātō** is the ablative case of the Latin perfect passive participle of [***rogātus***](https://en.wiktionary.org/wiki/rogatus#Etymology_2) (having been enquired / asked / requested / invited).\n\n###### How is it pronounced?\n###### \u003csup\u003eThe a and final o (marked with macrons) are pronounced twice as long as the first o.\u003c/sup\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakkdoor%2Frogato","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbakkdoor%2Frogato","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakkdoor%2Frogato/lists"}