Skip to content
/ pure Public

Purely functional programming language that transpiles to Node.js to make your backend development delightful

License

Notifications You must be signed in to change notification settings

prog-lang/pure

Repository files navigation

purist - Pure Dev Suite 🧰

Pure is a

  • Purely functional programming language that
  • Transpiles to Node.js code (of the CommonJS dialect)
  • Intended for backend developers who wish to create type-safe and elegant server applications

We hope that Pure will be able to target the following use cases:

  1. 🧩 Plug & Play - write a Pure module, transpile it, use its functions from within your regular Node.js modules/programs.
  2. 🌩️ Cloud Functions - you can incorporate Pure modules into your existing codebase - that's great! Why not use Pure to substitute some of your GCP or AWS Lambda endpoints?
  3. 🚀 Microservices - well... If you can write a Pure Cloud Function... Why not a Pure Microservice? After all, microservices are just cloud functions with some custom setup around them.

Install ✳️

NOTE: This relies on the stack build tool.

You may use the installation script:

source <(curl -s https://raw.githubusercontent.com/prog-lang/purist/main/install.sh)

Or execute these commands manually (the script does the same as the following code snippet):

git clone [email protected]:prog-lang/purist.git
cd purist
stack install

Uninstall ❌

During installation, stack builds an executable and copies it over into some folder on your system where it thinks global executables should be located. That folder is baked into stack and is usually something like $HOME/.local/bin/ on UNIX systems and probably something similar on Windows.

Therefore, uninstalling is extremely straightforward:

rm $(which purist)

Usage Basics 👷‍♀️

The following command will transpile someModule.pure into someModule.js.

purist c < someModule.pure > someModule.js

NOTE: Executing purist with no arguments displays the help message. Use it to get acquainted with its capabilities.

Develop 👨‍💻

🚧 CAUTION: ACTIVE CONSTRUCTION SITE 🚧

All great projects started somewhere and Pure isn't an exception to this rule. We are working hard to give you a tool you can be excited about.

Progress

Vision

Our vision is simple: we want backend development to feel like a game.

With a strict but flexible type system and a powerful set of dev tools, all you have to do is use compiler hints to make the puzzle pieces fit together. If you ever touched Elm or Haskell, you will know what I'm on about.

Research 👩‍🔬

Inspiration

  • Duet - a subset of Haskell aimed at aiding teachers teach Haskell
  • PureScript - a strongly-typed language that compiles to JavaScript

Syntactic Analysis

Type Systems

Contributing

If you wish to help out, please reach out via my personal email.

About

Purely functional programming language that transpiles to Node.js to make your backend development delightful

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published