{"id":13423663,"url":"https://github.com/empirical-soft/empirical-lang","last_synced_at":"2025-03-15T17:32:06.955Z","repository":{"id":55523184,"uuid":"187539029","full_name":"empirical-soft/empirical-lang","owner":"empirical-soft","description":"A language for time-series analysis","archived":false,"fork":false,"pushed_at":"2021-03-21T21:34:14.000Z","size":9460,"stargazers_count":168,"open_issues_count":15,"forks_count":13,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-10-26T23:11:48.941Z","etag":null,"topics":["programming-language","time-series-analysis"],"latest_commit_sha":null,"homepage":"https://www.empirical-soft.com/","language":"C++","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/empirical-soft.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-05-19T23:36:15.000Z","updated_at":"2024-06-24T01:32:50.000Z","dependencies_parsed_at":"2022-08-15T02:20:42.983Z","dependency_job_id":null,"html_url":"https://github.com/empirical-soft/empirical-lang","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empirical-soft%2Fempirical-lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empirical-soft%2Fempirical-lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empirical-soft%2Fempirical-lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/empirical-soft%2Fempirical-lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/empirical-soft","download_url":"https://codeload.github.com/empirical-soft/empirical-lang/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243767095,"owners_count":20344871,"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":["programming-language","time-series-analysis"],"created_at":"2024-07-31T00:00:40.123Z","updated_at":"2025-03-15T17:32:04.030Z","avatar_url":"https://github.com/empirical-soft.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://www.empirical-soft.com/logo.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/empirical-soft/empirical-lang/actions?query=workflow%3AEmpirical\"\u003e\u003cimg src=\"https://github.com/empirical-soft/empirical-lang/workflows/Empirical/badge.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About Empirical\n\n[Empirical](https://www.empirical-soft.com/) is a language for time-series analysis. It has statically typed Dataframes with integrated queries and builtin timestamps.\n\n## Examples\n\nRead CSV files and infer their types (at compile time!):\n\n```\n\u003e\u003e\u003e let trades = load(\"trades.csv\"), quotes = load(\"quotes.csv\")\n```\n\nCompute a one-minute volume-weighted average price (VWAP):\n\n```\n\u003e\u003e\u003e from trades select vwap = wavg(size, price) by symbol, bar(timestamp, 1m)\n```\n\nGet the most recent quote for each trade:\n\n```\n\u003e\u003e\u003e join trades, quotes on symbol asof timestamp\n```\n\nGet the closest event within three seconds:\n\n```\n\u003e\u003e\u003e join trades, events on symbol asof timestamp nearest within 3s\n```\n\nSee the [website](https://www.empirical-soft.com/) for more examples and full documentation.\n\n## Building Empirical\n\nThe build is handled by CMake. There are some scripts to help with the process, both for POSIX (`*.sh`) and Windows (`*.bat`). These can be called by `make` or `make.bat` for an easy workflow.\n\n|     | POSIX | Windows |\n| --- | ----- | --------|\n| debug build | `make` | `make.bat` |\n| production build | `make prod` | `make.bat prod` |\n| run tests | `make test` | `make.bat test` |\n| deploy binary | `make deploy` | `make.bat deploy` |\n| clean build | `make clean` | `make.bat clean` |\n\nAdditionally, POSIX has `make website`.\n\nWhile the actual code is all C++, there are code generators that need the JVM ([ANTLR](https://www.antlr.org)) and Python ([ASDL](https://github.com/empirical-soft/asdl4cpp)). These generators are included in this repo, so there is nothing to download.\n\nThe build is statically linked, so no libraries are needed to distribute the resulting binary.\n\n## Structure\n\nThe code for Empirical is structured as follows:\n\n - `src/` - source code for Empirical\n - `tests/` - regression tests\n - `doc/` - documentation\n - `cmake/` - CMake files\n - `scripts/` - build scripts\n - `thirdparty/` - open-source dependencies\n\n## Contributing\n\nSee the [Contributor's Notes](CONTRIBUTING.md). There is also the [Maintainer's Notes](MAINTAINING.md) for the curious.\n\n## License\n\n[Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.en.html) (AGPL) with the [Commons Clause](https://commonsclause.com).\n\nA proprietary license is available to vendors and customers that need more commercial-friendly terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fempirical-soft%2Fempirical-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fempirical-soft%2Fempirical-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fempirical-soft%2Fempirical-lang/lists"}