{"id":30151825,"url":"https://github.com/emmalanguage/emma","last_synced_at":"2025-08-11T11:09:44.618Z","repository":{"id":14655578,"uuid":"17373846","full_name":"emmalanguage/emma","owner":"emmalanguage","description":"A quotation-based Scala DSL for scalable data analysis.","archived":false,"fork":false,"pushed_at":"2022-07-07T21:07:08.000Z","size":9600,"stargazers_count":63,"open_issues_count":38,"forks_count":19,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-08-04T02:53:20.418Z","etag":null,"topics":["dsl","emma","flink","quotations","scala","scala-dsl","scalable-data-analysis","spark"],"latest_commit_sha":null,"homepage":"http://emma-language.org","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emmalanguage.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}},"created_at":"2014-03-03T17:30:30.000Z","updated_at":"2025-01-06T12:08:45.000Z","dependencies_parsed_at":"2022-08-26T16:31:23.323Z","dependency_job_id":null,"html_url":"https://github.com/emmalanguage/emma","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/emmalanguage/emma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmalanguage%2Femma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmalanguage%2Femma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmalanguage%2Femma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmalanguage%2Femma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emmalanguage","download_url":"https://codeload.github.com/emmalanguage/emma/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmalanguage%2Femma/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269873158,"owners_count":24488993,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"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":["dsl","emma","flink","quotations","scala","scala-dsl","scalable-data-analysis","spark"],"created_at":"2025-08-11T11:03:37.834Z","updated_at":"2025-08-11T11:09:44.605Z","avatar_url":"https://github.com/emmalanguage.png","language":"Scala","funding_links":[],"categories":["数据科学"],"sub_categories":["语音合成"],"readme":"# Emma\n\n*A quotation-based Scala DSL for scalable data analysis.*\n\n[![Build Status](https://travis-ci.org/emmalanguage/emma.svg?branch=master)](https://travis-ci.org/emmalanguage/emma)\n\n## Goals\n\nOur goal is to improve developer productivity by hiding parallelism aspects behind a high-level, \ndeclarative API which maximises reuse of native Scala syntax and constructs.\n\nEmma supports state-of-the-art dataflow engines such as \n[Apache Flink](https://flink.apache.org/) and \n[Apache Spark](https://spark.apache.org/) as backend co-processors.\n\n## Features\n\nDSLs for scalable data analysis are embedded through types.\nIn contrast, Emma is *based on quotations* (similar to [Quill](http://getquill.io/)).\nThis approach has two benefits.\n\nFirst, it allows to reuse Scala-native, declarative constructs in the DSL.\nQuoted Scala syntax such as \n[`for`-comprehensions](http://docs.scala-lang.org/tutorials/FAQ/yield.html),\n[case-classes](http://docs.scala-lang.org/tutorials/tour/case-classes.html), and \n[pattern matching](http://docs.scala-lang.org/tutorials/tour/pattern-matching.html) \nare thereby lifted to an intermediate representation called *Emma Core*.\n\nSecond, it allows to *analyze and optimize* Emma Core terms holistically. \nSubterms of type `DataBag[A]` are thereby transformed and off-loaded to a parallel dataflow engine such as Apache Flink or Apache Spark.\n\n## Examples\n\nThe [emma-examples](emma-examples/emma-examples-library/src/main/scala/org/emmalanguage/examples) module contains examples from various fields.\n\n- Graph Analysis\n  - [Connected Components](emma-examples/src/main/scala/org/emmalanguage/examples/graphs/ConnectedComponents.scala)\n  - [Triangle Enumeration](emma-examples/src/main/scala/org/emmalanguage/examples/graphs/EnumerateTriangles.scala)\n  - [Transitive Closure](emma-lib/src/main/scala/org/emmalanguage/lib/graphs/transitiveClosure.scala)\n- Supervised Learning\n  - [Naive Bayses Classification](emma-lib/src/main/scala/org/emmalanguage/lib/ml/classification/naiveBayes.scala)\n- Unsupervised Learning\n  - [k-Means Clustering](emma-lib/src/main/scala/org/emmalanguage/lib/ml/clustering/kMeans.scala)\n- Text Processing\n  - [Word Count](emma-examples/src/main/scala/org/emmalanguage/examples/text/WordCount.scala)\n\n## Learn More\n\nCheck [emma-language.org](http://emma-language.org) for further information.\n\n## Build\n\n- JDK 7+ (preferably JDK 8)\n- Maven 3\n\nRun\n\n```bash\nmvn clean package -DskipTests\n```\n\nto build Emma without running any tests. \n\nFor more advanced build options including integration tests for the target runtimes please see the [\"Building Emma\" section in the Wiki](../../wiki/Building-Emma).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmalanguage%2Femma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femmalanguage%2Femma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmalanguage%2Femma/lists"}