awesome-urweb
Awesome Ur/Web
A curated list of awesome Ur/Web code and resources. Inspired by awesome and 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 (mailing list, IRC, etc.).
- Awesome Ur/Web
- Algorithms and Data Structures
- Api Builders
- C Bindings
- Caching
- CLI Builders
- CLI Utils
- Code Analysis and Metrics
- Compression
- Configuration
- Converters
- Cryptography
- CSS
- Data Formats
- Data Generators
- Database Drivers/Clients
- Database Tools
- Debugging
- Dependency Injection
- Development Tools
- Environment Management
- Examples and Funny Stuff
- Feature Flipping
- Framework Components
- HTML Builders
- HTML/XML Parsing
- HTTP
- Image Processing
- Implementations/Compilers
- Logging and Monitoring
- Markdown/Text Processors
- Misc
- ORM/ODM Extensions
- Package Management
- Processes and Threads
- Project Generators
- Queues and Messaging
- Routing
- Scheduling
- Search
- Serverless Computing
- System
- Task management
- Template Engine
- Testing
- Third-party APIs
- Validation
- Web Frameworks
- Web Servers
- Community
- Resources
- Services and Apps
- Tools
Algorithms and Data Structures
- urweb-aatree - Sorted and Hashed versions of Sets and Dictionaries as Arne Anderson trees
- urweb-dequeue - Double ended queue over split list implementation
- 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 - Interface to Twitter Bootstrap CSS library
Data Formats
- urweb-utf8 - Basic UTF8 library (DEPRECATED - part of Ur/Web since 2019.)
Data Generators
Database Drivers/Clients
Database Tools
- apgdiff - Another PostgreSQL Diff Tool (DDL). Written in Java. Useful for migrations.
- pgquarrel - Compares PostgreSQL database schemas (DDL). Useful for migrations.
Debugging
Dependency Injection
Development Tools
- urweb-prelude - Collection of basic combinators, inspired by Haskell's Prelude library
- email - Sending e-mail from Ur/Web
Environment Management
Examples and Funny Stuff
Feature Flipping
Framework Components
- ajaxUpload - Upload files without forcing page reloads
- openid - OpenID authentication (NOTE: this functionality should be revised and included in
world
) - urweb-captcha - Captcha library in Ur/Web
- urweb-persona - Persona authentication example in Ur/Web
- urweb-persona (fork) - Persona authentication example in Ur/Web (fork)
- world - Interfaces to common web API providers
HTML Builders
HTML/XML Parsing
- feed - Reading XML feeds in Ur/Web
- 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
Network Protocols
ORM/ODM Extensions
Package Management
- urweb-build - Build system for Ur/Web projects, written in Nix expression language
Processes and Threads
- uw-process - This library let's you run arbitrary command lines.
Project Generators
Queues and Messaging
- 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 - Framework for rapid construction of web apps for organizing people and events
Web Servers
Community
- IRC - #ur on Libera.Chat
- Ur mailing list
Resources
Demos
- Demos - Official Ur/Web demos
- Extensibl - A simple website written in Ur/Web
- Hands-On Opa - Ur/Web versions of demos from Hands-On Opa
- Logitext - Interactive sequent calculus tutorial (homepage)
- More Demos - More of the official Ur/Web demos
- Oilprice - Simple application ("Oilprice")
- Split calculator - Split an expense between people evenly (blog post and demo)
- TodoMVC - An Ur/Web Solution to TodoMVC
- Ur/Web Examples - Timothy Beyer's Ur/Web examples
- UrBlog - Ur/Web-based blog system
- UrFlow Demo - Static analysis
- uru3 - Set of user interface libraries
- 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 - demonstrating complex app development (uru3, xmlw, urweb-build)
- urweb-monad-pack - Collection of monads inspired by Haskell's MTL
Official
- Issue tracker - Official issue tracker
- Ur FAQ - Ur/Web FAQ
- www.impredicative.com/ur - Official language site
References
- basis.urs - urweb/lib/ur/basis.urs
- The Ur/Web Manual - Official Ur/Web Manual
- top.urs and top.ur- urweb/lib/ur/top.ur{,s}
- Ur/Web 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
- Basic Examples of the Type Class Mechanism in Ur/Web
- disjointness fun - creating records using type level functions
- dnplayer - Daniel Patterson's media player app with extensive tutorial
- Handling POST requests with Ur/Web
- Managing the server/client split in Ur/Web - Edward Z. Yang's post
- Polymorphic variants in Ur/Web
- Polymorphic Variants Usage Example
- Simple Ur/Web Example
- The Ur/Web Tutorial - Official tutorial (introduction and type-level computation)
- Three research programming languages together
- Top.Fold to count fields of a record
- Type Classes as Predicates over types
- Ur/Web in production - Vladimir Shabanov's mailing list post about BazQux Reader
- Ur/Web Tutorial - Gian Perrone's Ur/Web Tutorial (source code)
- Ur/Web's approach to records - Edward Z. Yang's post
- Using Ur/Web: Pro's and Con's - Simon Van Casteren's blog post
Videos
- Ur/Web tutorial, multiple lessons - Adam Chlipala's Ur/Web tutorial
Services and Apps
- BazQux Reader - Commercial RSS feed reader (partial source code)
- Bitcoin Merge Mining Pool
- classy.school - SaaS application for music schools in Belgium
- Ecosrv - Build server for firmware on network hardware
Tools
DevOps
Editor Plugins
- Emacs integration
- 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.
# 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
Repository
awesome-urweb
Owner
Statistic
- 12
- 1
- 1
- 0
- 1
- almost 3 years ago
- May 1, 2020
License
MIT License
Links
Synced at
Sun, 24 Nov 2024 05:49:15 GMT
Languages