https://github.com/enso-org/enso Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + By Plan + Enterprise + Teams + Compare all + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} enso-org / enso Public * Notifications * Fork 217 * Star 6k Hybrid visual and textual functional programming. enso.org License Apache-2.0 license 6k stars 217 forks Star Notifications * Code * Issues 10 * Pull requests 27 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights enso-org/enso This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. develop Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 127 branches 289 tags Code * Clone HTTPS GitHub CLI [https://github.com/e] Use Git or checkout with SVN using the web URL. [gh repo clone enso-o] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @hubertp hubertp Don't add module's builtins to the scope of a builtin type (# 3791) ... 7b0759f Nov 16, 2022 Don't add module's builtins to the scope of a builtin type (#3791) It appears that we were always adding builtin methods to the scope of the module and the builtin type that shared the same name. This resulted in some methods being accidentally available even though they shouldn't. This change treats differently builtins of types and modules and introduces auto-registration feature for builtins. By default all builtin methods are registered with a type, unless explicitly defined in the annotation property. Builtin methods that are auto-registered do not have to be explicitly defined and are registered with the underlying type. Registration correctly infers the right type, depending whether we deal with static or instance methods. Builtin methods that are not auto-registered have to be explicitly defined **always**. Modules' builtin methods are the prime example. # Important Notes Builtins now carry information whether they are static or not (inferred from the lack of `self` parameter). They also carry a `autoRegister` property to determine if a builtin method should be automatically registered with the type. 7b0759f Git stats * 2,327 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .cargo .github .idea/runConfigurations actions/setup-build app build distribution docs engine integration-test lib project std-bits test tools .gitignore .ignore .jvmopts .prettierignore .prettierrc.yaml .scalafmt.conf CHANGELOG.md Cargo.lock Cargo.toml LICENSE README.md RELEASES.md build-config.yaml build.sbt clippy.toml package.json run run.cmd run.ps1 rust-toolchain.toml rustfmt.toml View code [ ] Enso.org. Get insights you can rely on. In real time. Enso's Features Getting Started Enso Source Code Project Components License Contributing to Enso Enso's Design README.md [114557275-cbd27a80-9c69-11eb-9e4d-a60187cdb7a4] Chat Actions Status Actions Status License License Enso.org. Get insights you can rely on. In real time. Enso is an award-winning interactive programming language with dual visual and textual representations. It is a tool that spans the entire stack, going from high-level visualisation and communication to the nitty-gritty of backend services, all in a single language. Watch the following introduction video to learn what Enso is, and how it helps companies build data workflows in minutes instead of weeks. Screenshot 2021-04-15 at 12 16 32 Enso's Features Turning your data into knowledge is slow and error-prone. You can't trust tools that don't embrace best practices and provide quality assurance. Enso redefines the way you can work with your data: it is interactive, provides intelligent assistance, and was designed on a strong mathematical foundation, so you can always trust the results you get. [001-a] Intelligent suggestions of possible next steps. Build workflows in minutes instead of weeks. Enso analyses the data, suggests possible next steps, and displays related help and examples. It lets you build dashboards, RPA workflows, and apps, with no coding required. Enso ships with a robust set of libraries, allowing you to work with local files, databases, HTTP services, and other applications in a seamless fashion. Learn more - [018-m] Reproducible, trustworthy results. Versioning and visual data quality management allow you to trust the results that you get. Learn more - [041-g] A powerful, purely functional language. Both visual and textual. Enso incorporates many recent innovations in data processing and programming language design to allow you to work interactively and trust the results that you get. It is a purely functional programming language with higher-order functions, user-defined algebraic datatypes, pattern-matching, and two equivalent representations that you can switch between on-demand. Learn more - [036-p] Mix languages with close-to-zero interop overhead. Import any library from Enso, Java, JavaScript, R, or Python, and use functions, callbacks, and data types without any wrappers. Enso uses GraalVM to compile them to the same instruction set with a unified memory model. Learn more - [051-r] Fast. Up to 80x faster than Python. It can even run other languages faster than their official runtimes. Enso-R (using FastR on the GraalVM) is 36x faster than GNU-R. See benchmarks - [063-p] A cutting-edge visualization engine. Enso is equipped with a highly-tailored WebGL visualization engine capable of displaying many millions of data points at 60 frames per second in a web browser. Currently, Enso includes a set of core data visualizations out of the box, and you can easily extend it with libraries such as D3.js, Three.js, Babylon.js, deck.gl, VTK.js, Potree, and many more. Learn more - [004-c] Runs everywhere. Enso is available on macOS, Windows, and GNU/Linux, and the Enso IDE runs on web-native technologies. In time, you'll be able to run it in the web-browser, giving even your tablet and phone access to your data. Learn more - Getting Started An example Enso graph [24px] Download Enso o Enso Interactive Environment o Enso Compiler (CLI, optional) [24px] Watch Tutorials o Enso keyboard shortcuts o Enso 101 o Analyze trams data o Analyze GitHub Stargazers data o ... other tutorials [24px] Watch Video Podcasts o Enso Textual Language Basics o Using Java libraries in Enso o Custom data visualizations o Enso vision. What is in the future? o ... other video podcasts [24px] Join Our Community o Discord chat. Get help, share your use cases, meet the team behind Enso and other Enso users! [24px] Keep Up With the Latest Updates o Enso Development Blog o Enso Mailing List Enso Source Code If you want to start using Enso, please see the download links in the getting started section above. Alternatively, you can get the IDE here and the language itself here. This section is intended for people interested in contributing to the development of Enso. Enso is a community-driven open source project which is, and will always be, open and free to use. Join us, help us to build it, and spread the word! Project Components Enso consists of several sub projects: * Enso Engine: The Enso Engine is the set of tools that implement the Enso language and its associated services. These include the Enso interpreter, a just-in-time compiler and runtime (both powered by GraalVM), and a language server that lets you inspect Enso code as it runs. These components can be used on their own as command line tools. * Enso IDE: The Enso IDE is a desktop application that allows working with the visual form of Enso. It consists of an Electron application, a high performance WebGL UI framework, and the searcher which provides contextual search, hints, and documentation for all of Enso's functionality. License The Enso Engine is licensed under the Apache 2.0, as specified in the LICENSE file. The Enso IDE is licensed under the AGPL 3.0, as specified in the LICENSE file. This license set was chosen to provide you with complete freedom to use Enso, create libraries, and release them under any license of your choice, while also allowing us to release commercial products on top of the platform, including Enso Cloud and Enso Enterprise server managers. Contributing to Enso Enso is a community-driven open source project which is and will always be open and free to use. We are committed to a fully transparent development process and highly appreciate every contribution. If you love the vision behind Enso and you want to redefine the data processing world, join us and help us track down bugs, implement new features, improve the documentation or spread the word! If you'd like to help us make this vision a reality, please feel free to join our chat, and take a look at our development and contribution guidelines. The latter describes all the ways in which you can help out with the project, as well as provides detailed instructions for building and hacking on Enso. If you believe that you have found a security vulnerability in Enso, or that you have a bug report that poses a security risk to Enso's users, please take a look at our security guidelines for a course of action. Enso's Design If you would like to gain a better understanding of the principles on which Enso is based, or just delve into the why's and what's of Enso's design, please take a look in the docs/ folder. It is split up into subfolders for each component of Enso. You can view this same documentation in a rendered form at the developer docs website. This folder also contains a document on Enso's design philosophy, that details the thought process that we use when contemplating changes or additions to the language. This documentation will evolve as Enso does, both to help newcomers to the project understand the reasoning behind the code, and also to act as a record of the decisions that have been made through Enso's evolution. About Hybrid visual and textual functional programming. enso.org Topics language functional interpreter compiler visual textual jit polyglot graalvm hybrid rts enso Resources Readme License Apache-2.0 license Code of conduct Code of conduct Security policy Security policy Stars 6k stars Watchers 93 watching Forks 217 forks Releases 269 Enso Engine 0.2.31 Latest Oct 1, 2021 + 268 releases Used by 107 * @enso-org * @bibix * @weiyisheng * @vserge * @huyz * @JaroslavTulach * @me714 * @dejan-stankovic + 99 Contributors 35 * @iamrecursion * @wdanilo * @4e6 * @farmaazon * @radeusgd * @mwu-tow * @MichaelMauderer * @kustosz * @hubertp * @BinarySoftware * @JaroslavTulach + 24 contributors Languages * Rust 47.9% * Scala 38.1% * Java 11.6% * JavaScript 1.4% * TypeScript 0.4% * GLSL 0.3% * Other 0.3% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.