Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/docelic/awesome-urweb

Collection of awesome Ur/Web libraries, components, and projects
https://github.com/docelic/awesome-urweb

List: awesome-urweb

Last synced: about 1 month ago
JSON representation

Collection of awesome Ur/Web libraries, components, and projects

Awesome Lists containing this project

README

        

# Awesome Ur/Web
[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)
[![Build Status](https://api.travis-ci.org/crystallabs/awesome-urweb.svg)](https://travis-ci.org/crystallabs/awesome-urweb)

A curated list of awesome Ur/Web code and resources. Inspired by [awesome](https://github.com/sindresorhus/awesome) and [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness).
The goal is to have projects useful for the community.

Contributions are welcome. Feel free to submit Ur/Web libraries, projects, and supporting functionality (possibly implemented in other languages).

Also join [Ur/Web community](#community) (mailing list, IRC, etc.).

* [Awesome Ur/Web](#awesome-urweb)
* [Algorithms and Data Structures](#algorithms-and-data-structures)
* [Api Builders](#api-builders)
* [C Bindings](#c-bindings)
* [Caching](#caching)
* [CLI Builders](#cli-builders)
* [CLI Utils](#cli-utils)
* [Code Analysis and Metrics](#code-analysis-and-metrics)
* [Compression](#compression)
* [Configuration](#configuration)
* [Converters](#converters)
* [Cryptography](#cryptography)
* [CSS](#css)
* [Data Formats](#data-formats)
* [Data Generators](#data-generators)
* [Database Drivers/Clients](#database-driversclients)
* [Database Tools](#database-tools)
* [Debugging](#debugging)
* [Dependency Injection](#dependency-injection)
* [Development Tools](#development-tools)
* [Email](#email)
* [Environment Management](#environment-management)
* [Examples and Funny Stuff](#examples-and-funny-stuff)
* [Feature Flipping](#feature-flipping)
* [Framework Components](#framework-components)
* [HTML Builders](#html-builders)
* [HTML/XML Parsing](#htmlxml-parsing)
* [HTTP](#http)
* [Image Processing](#image-processing)
* [Implementations/Compilers](#implementationscompilers)
* [Logging and Monitoring](#logging-and-monitoring)
* [Markdown/Text Processors](#markdowntext-processors)
* [Misc](#misc)
* [ORM/ODM Extensions](#ormodm-extensions)
* [Package Management](#package-management)
* [Processes and Threads](#processes-and-threads)
* [Project Generators](#project-generators)
* [Queues and Messaging](#queues-and-messaging)
* [Routing](#routing)
* [Scheduling](#scheduling)
* [Search](#search)
* [Serverless Computing](#serverless-computing)
* [System](#system)
* [Task management](#task-management)
* [Template Engine](#template-engine)
* [Testing](#testing)
* [Third-party APIs](#third-party-apis)
* [Validation](#validation)
* [Web Frameworks](#web-frameworks)
* [Web Servers](#web-servers)
* [Community](#community)
* [Resources](#resources)
* [Demos](#demos)
* [Official](#official)
* [References](#references)
* [Tutorials and Blog Posts](#tutorials-and-blog-posts)
* [Videos](#videos)
* [Services and Apps](#services-and-apps)
* [Tools](#tools)
* [DevOps](#devops)
* [Editor Plugins](#editor-plugins)
* [Shell Plugins](#shell-plugins)

## Algorithms and Data Structures

* [urweb-aatree](https://github.com/griba2001/urweb-aatree) - Sorted and Hashed versions of Sets and Dictionaries as Arne Anderson trees
* [urweb-dequeue](https://github.com/griba2001/urweb-dequeue) - Double ended queue over split list implementation
* [urweb-pairing-heap](https://github.com/griba2001/urweb-pairing-heap) - A pairing heap implementation of a priority queue

## Api Builders

## C bindings

## Caching

## CLI Builders

## CLI Utils

## Code Analysis and Metrics

## Compression

## Configuration

## Converters

## Cryptography

## CSS

* [bootstrap](https://github.com/urweb/bootstrap) - Interface to Twitter Bootstrap CSS library

## Data Formats

* [urweb-utf8](https://github.com/grwlf/urweb-utf8) - Basic UTF8 library (DEPRECATED - part of Ur/Web since 2019.)

## Data Generators

## Database Drivers/Clients

## Database Tools

* [apgdiff](https://apgdiff.com/) - Another PostgreSQL Diff Tool (DDL). Written in Java. Useful for migrations.
* [pgquarrel](https://github.com/eulerto/pgquarrel) - Compares PostgreSQL database schemas (DDL). Useful for migrations.

## Debugging

## Dependency Injection

## Development Tools

* [urweb-prelude](https://github.com/grwlf/urweb-prelude) - Collection of basic combinators, inspired by Haskell's Prelude library

## Email

* [email](https://github.com/urweb/email) - Sending e-mail from Ur/Web

## Environment Management

## Examples and Funny Stuff

## Feature Flipping

## Framework Components

* [ajaxUpload](https://github.com/urweb/ajaxUpload) - Upload files without forcing page reloads
* [openid](http://hg.impredicative.com/openid) - OpenID authentication (NOTE: this functionality should be revised and included in `world`)
* [urweb-captcha](https://github.com/grwlf/urweb-captcha) - Captcha library in Ur/Web
* [urweb-persona](https://github.com/doublec/urweb-persona) - Persona authentication example in Ur/Web
* [urweb-persona (fork)](https://github.com/grwlf/urweb-persona) - Persona authentication example in Ur/Web (fork)
* [world](https://github.com/urweb/world) - Interfaces to common web API providers

## HTML Builders

## HTML/XML Parsing

* [feed](https://github.com/urweb/feed) - Reading XML feeds in Ur/Web
* [urweb-xmlw](https://github.com/grwlf/urweb-xmlw) - Library defining a monadic XML accumulator. It allows programmer to mix XML code and transactional logic in a single Writer-like monad.

## HTTP

## Image Processing

## Implementations/Compilers

## Logging and Monitoring

## Markdown/Text Processors

## Misc

* [Companies supporting the urweb language](http://www.impredicative.com/wiki/index.php/Companies_supporting_the_urweb_language)
* [Simple benchmarks for urweb ](https://github.com/MarcWeber/urweb-benchmark)
* [TechEmpower Benchmarks](https://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=fortune)

## Network Protocols

## ORM/ODM Extensions

## Package Management

* [urweb-build](https://github.com/grwlf/urweb-build) - Build system for Ur/Web projects, written in Nix expression language

## Processes and Threads

* [uw-process](https://github.com/wnavarre/uw-process) - This library let's you run arbitrary command lines.

## Project Generators

## Queues and Messaging

* [urweb-callback](https://github.com/grwlf/urweb-callback) - Run serve-side processes asynchronously

## Routing

## Scheduling

## Search

## Serverless Computing

## System

## Task Management

## Template Engine

## Testing

## Third-party APIs

## Validation

## Web Frameworks

* [UPO](http://upo.csail.mit.edu/) - Framework for rapid construction of web apps for organizing people and events

## Web Servers

# Community
* [IRC](https://web.libera.chat/?channel=#ur) - #ur on Libera.Chat
* [Ur mailing list](http://www.impredicative.com/cgi-bin/mailman/listinfo/ur/)

# Resources

## Demos

* [Demos](http://www.impredicative.com/ur/demo/) - Official Ur/Web demos
* [Extensibl](https://github.com/extensibl/website) - A simple website written in Ur/Web
* [Hands-On Opa](http://www.impredicative.com/ur/opa/) - Ur/Web versions of demos from Hands-On Opa
* [Logitext](https://github.com/ezyang/logitext) - Interactive sequent calculus tutorial ([homepage](http://logitext.mit.edu/main))
* [More Demos](http://www.impredicative.com/ur/more/) - More of the official Ur/Web demos
* [Oilprice](https://github.com/grwlf/oilprice) - Simple application ("Oilprice")
* [Split calculator](https://github.com/ashalkhakov/ashalkhakov.github.com/blob/source/src/split_calculator.ur) - Split an expense between people evenly ([blog post](http://ashalkhakov.github.io/articles/splitcalc.html) and [demo](https://ashalkhakov.github.io/split-calculator.html))
* [TodoMVC](http://www.impredicative.com/ur/todomvc/) - An Ur/Web Solution to TodoMVC
* [Ur/Web Examples](http://chiselapp.com/user/beyert/repository/urweb_examples/dir?ci=tip&type=tree) - Timothy Beyer's Ur/Web examples
* [UrBlog](https://github.com/gian/urblog) - Ur/Web-based blog system
* [UrFlow Demo](http://www.impredicative.com/ur/scdv/) - Static analysis
* [uru3](https://github.com/grwlf/uru3) - Set of user interface libraries
* [urweb-clock](https://github.com/doublec/urweb-clock) - Displays a web page that displays the server's time updated every second or so by executing `date` on the server
* [urweb-fviewer](https://github.com/grwlf/urweb-fviewer) - demonstrating complex app development (uru3, xmlw, urweb-build)
* [urweb-monad-pack](https://github.com/grwlf/urweb-monad-pack) - Collection of monads inspired by Haskell's MTL

## Official

* [Issue tracker](https://github.com/urweb/urweb/issues) - Official issue tracker
* [Ur FAQ](http://www.impredicative.com/ur/faq.html) - Ur/Web FAQ
* [www.impredicative.com/ur](http://www.impredicative.com/ur/) - Official language site

## References

* [basis.urs](https://github.com/urweb/urweb/blob/master/lib/ur/basis.urs) - urweb/lib/ur/basis.urs
* [The Ur/Web Manual](http://www.impredicative.com/ur/manual.pdf) - Official Ur/Web Manual
* [top.urs](https://github.com/urweb/urweb/blob/master/lib/ur/top.urs) and [top.ur](https://github.com/urweb/urweb/blob/master/lib/ur/top.ur)- urweb/lib/ur/top.ur{,s}
* [Ur/Web Tests](https://github.com/urweb/urweb/tree/master/tests) - Official tests in the compiler repository. Helps to show examples, especially concerning syntax and embedded SQL.

## Tutorials and Blog Posts

* [Abstract and Concrete Type Classes](http://www.impredicative.com/wiki/index.php/Abstract_and_Concrete_Type_Classes)
* [Basic Examples of the Type Class Mechanism in Ur/Web](http://www.impredicative.com/wiki/index.php/Basic_Examples_of_the_Type_Class_Mechanism_in_Ur/Web)
* [disjointness fun](http://www.impredicative.com/wiki/index.php/Disjointness_fun_-_creating_records_using_type_level_functions) - creating records using type level functions
* [dnplayer](https://github.com/dbp/dnplayer) - Daniel Patterson's media player app with [extensive tutorial](https://dbp.io/essays/2013-05-21-literate-urweb-adventure.html)
* [Handling POST requests with Ur/Web](https://bluishcoder.co.nz/2010/12/16/handling-post-requests-with-urweb.html)
* [Managing the server/client split in Ur/Web](http://blog.ezyang.com/2012/07/managing-the-server-client-split-in-ur-web/) - Edward Z. Yang's post
* [Polymorphic variants in Ur/Web](http://blog.ezyang.com/2012/07/polymorphic-variants-in-urweb/)
* [Polymorphic Variants Usage Example](http://www.impredicative.com/wiki/index.php/Polymorphic_Variants_Usage_Example)
* [Simple Ur/Web Example](https://bluishcoder.co.nz/2010/12/14/simple-urweb-example.html)
* [The Ur/Web Tutorial](http://www.impredicative.com/ur/tutorial/) - Official tutorial (introduction and type-level computation)
* [Three research programming languages together](http://blog.ezyang.com/2012/05/what-happens-when-you-mix-three-research-programming-languages-together/)
* [Top.Fold to count fields of a record](http://www.impredicative.com/wiki/index.php/Using_Top.Fold_to_count_fields_of_a_record)
* [Type Classes as Predicates over types](http://www.impredicative.com/wiki/index.php/Basic_Example_of_Type_Classes_as_Predicates_Over_Types)
* [Ur/Web in production](http://www.impredicative.com/pipermail/ur/2014-January/001608.html) - Vladimir Shabanov's mailing list post about BazQux Reader
* [Ur/Web Tutorial](http://www.expdev.net/urtutorial/) - Gian Perrone's Ur/Web Tutorial ([source code](https://github.com/gian/urtutorial))
* [Ur/Web's approach to records](http://blog.ezyang.com/2012/04/how-urweb-records-work-and-what-it-might-mean-for-haskell/) - Edward Z. Yang's post
* [Using Ur/Web: Pro's and Con's](https://frigoeu.github.io/urweb1.html) - Simon Van Casteren's blog post

## Videos

* [Ur/Web tutorial, multiple lessons](https://www.youtube.com/watch?v=2SmHs4kHv3s) - Adam Chlipala's Ur/Web tutorial

# Services and Apps

* [BazQux Reader](https://bazqux.com/) - Commercial RSS feed reader ([partial source code](https://github.com/bazqux/bazqux-urweb))
* [Bitcoin Merge Mining Pool](http://mmpool.org/)
* [classy.school](https://www.classy.school/) - SaaS application for music schools in Belgium
* [Ecosrv](http://ecosrv.hit.msk.ru/) - Build server for firmware on network hardware

# Tools

## DevOps

## Editor Plugins

* [Emacs integration](http://ashalkhakov.github.io/articles/urweb-setup.html)
* LSP server - `urweb -startLspServer`

## Shell Plugins

# How to Contribute

Feel free to submit Ur/Web libraries, projects, and supporting functionality (possibly implemented in other languages).
When possible, include key words in the description following the "-". This helps users search locally within the document.

```sh
# To clone and update:
git clone https://github.com/crystallabs/awesome-urweb
editor README.md
git commit && ...

# (Optional) To run tests, install Crystal - https://crystal-lang.org/:
shards
crystal spec
```