{"id":27197736,"url":"https://github.com/preaction/tartarus","last_synced_at":"2025-10-12T17:46:05.951Z","repository":{"id":41225330,"uuid":"48930267","full_name":"preaction/Tartarus","owner":"preaction","description":"Scalable data warehouse platform","archived":false,"fork":false,"pushed_at":"2016-11-12T04:04:25.000Z","size":33,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-17T21:17:03.618Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/preaction.png","metadata":{"files":{"readme":"README","changelog":"CHANGES","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-03T01:41:27.000Z","updated_at":"2024-04-17T21:17:03.619Z","dependencies_parsed_at":"2022-09-15T23:22:41.470Z","dependency_job_id":null,"html_url":"https://github.com/preaction/Tartarus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preaction%2FTartarus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preaction%2FTartarus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preaction%2FTartarus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/preaction%2FTartarus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/preaction","download_url":"https://codeload.github.com/preaction/Tartarus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248106822,"owners_count":21048800,"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":[],"created_at":"2025-04-09T20:29:29.048Z","updated_at":"2025-10-12T17:46:00.905Z","avatar_url":"https://github.com/preaction.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"SYNOPSIS\n\n        # tartarus.yml\n        mounts:\n            user:\n                $class: Tartarus::DataSource::Postgres\n                host: localhost\n            stats:\n                $class: Tartarus::DataSource::RRDTool\n                root: /var/db/rrdtool\n            orders:\n                $class: Tartarus::DataSource::MySQL\n                host: db.example.com\n        transport:\n            $class: Tartarus::Transport::ZeroMQ\n            endpoint: tcp://*:7000\n        message:\n            $class: Tartarus::Message::Sereal\n    \n        # Start the server\n        tartarus [-f \u003cconfig_file\u003e]\n\nDESCRIPTION\n\n    Tartarus is a server that provides a unified API on to multiple data\n    sources, mounted in a tree. Users may make requests of the data,\n    reading and writing, or they can subscribe to messages as they pass\n    through the API, allowing for notification of updates.\n\n    Tartarus is built to help data warehouses be scalable and flexible. The\n    unified API makes simple data maintenance tasks trivial, allows for\n    easy migration of data between backend data platforms, and enables\n    scalability features like sharding and caching that the backend data\n    platform may not support.\n\n Data Source\n\n    Tartarus collects multiple data sources, arranged in a tree. Each data\n    source can expose its data as a tree as well, mapping the data in a\n    logical, navigable structure.\n\n    Data sources can be relational databases like Postgres and MySQL,\n    document stores like MongoDB and ElasticSearch, and time series\n    databases like RRDTool and Graphite.\n\n    Tartarus can use other Tartarus servers as data sources, allowing for\n    sharding, failover, and other scalability patterns.\n\n    Custom data sources can take any form, allowing easy access to things\n    like SNMP data. Custom data sources can also filter and transform\n    existing data sources, allowing for on-the-fly transforms and analysis.\n\n Transport\n\n    Tartarus allows incoming connections via a transport, like ZeroMQ,\n    nanomsg, HTTP, WebSockets, or plain TCP. Multiple transports can be\n    configured, allowing multiple types of clients.\n\n Message\n\n    Tartarus messages can be serialized by one of many types of message\n    format, including Sereal, Protocol Buffers, MessagePack, Cap'n Proto,\n    JSON, BSON, and more.\n\n    Tartarus messages create a common data structure so that different data\n    sources can be used by the same program.\n\nSEE ALSO\n\n      * Tartarus::DataSource\n\n      * Tartarus::Transport\n\n      * Tartarus::Message\n\n        message:\n            $class: Tartarus::Message::Sereal\n\n    The message type to use\n\n        transport:\n            $class: Tartarus::Transport::ZeroMQ\n            $args:\n                endpoint: tcp://127.0.0.1:7000\n\n    The transport layer to use\n\n        mounts:\n            /customers:\n                $class: Tartarus::DataSource::Postgres\n                $args:\n                    host: localhost\n                    port: 4660\n            /usage:\n                $class: Tartarus::DataSource::RRDTool\n                $args:\n                    root_dir: /var/db/rrd\n\n    Mount a data source at a path.\n\n        $t-\u003erun();\n\n    Start the daemon.\n\nPOD ERRORS\n\n    Hey! The above document had some coding errors, which are explained\n    below:\n\n    Around line 86:\n\n      Unknown directive: =attr\n\n    Around line 93:\n\n      Unknown directive: =attr\n\n    Around line 102:\n\n      Unknown directive: =attr\n\n    Around line 117:\n\n      Unknown directive: =method\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpreaction%2Ftartarus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpreaction%2Ftartarus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpreaction%2Ftartarus/lists"}