Create your own Mini Web Server in F#
4.4 (8 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
80 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Create your own Mini Web Server in F# to your Wishlist.

Add to Wishlist

Create your own Mini Web Server in F#

Learn the design principles of Suave library using Functional-First Programming with F#
4.4 (8 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
80 students enrolled
Created by Tamizhvendan S
Last updated 5/2017
Price: $40
30-Day Money-Back Guarantee
  • 1 hour on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Functional-First Programming with F#
  • Internals of the Suave, a popular web library in F#
  • Application of Combinator Pattern
  • Three Step Approach - An effective technique to develop applications using Functional Programming
View Curriculum
  • This course aimed at students with beginner to intermediate skill in F#, basic understanding of the F# syntax and a light functional understanding would be beneficial.

In this latest course from FSharp.TV, we are going to learn Functional-First Programming with F# and explore what it takes to build a web server library in F#. 

How has the course been structured?  

We all know reading the source code of a widely used library/project will help us to learn a programming language better. But how about learning a language by (re)building the project itself from the ground up? Sounds interesting, isn't it? 

In this course, we are going to build a minimal version of the Suave library, a popular web development library in F#. 

We will be creating the library by focusing on one requirement at a time, and evolve it incrementally.

Note: To get most out of this course, code side by side with the videos and experience the essence of functional programming.

What is Suave?

Suave, a simple web development library in F#. It provides a lightweight, non-blocking web server and a set of combinators to manipulate route flow and task composition. The non-blocking I/O model is efficient and suitable for building fast, scalable network applications.

By Completing this course, You will learn

  • Three-Step Approach - A useful technique to develop applications using Functional Programming
  • A real world application of Combinator Pattern
  • Internals of the Suave library
  • Last but not the least, you are going to experience how to put the pieces together and build a complete project using functional programming principles and techniques
Who is the target audience?
  • Anyone who wants to wants to apply functional programming in real world
  • Anyone that wants to learn the internals of serving data over HTTP
Compare to Other F# Courses
Curriculum For This Course
Getting Started
15 Lectures 53:26

This video introduces the Author and his experiences in using F# in production. He also explains how why he has created this course and how you can approach this video tutorial to get the most out of it.

Preview 00:43

This video will provide an overview of what to expect from the course, what you will be creating and prerequisites.

Preview 01:58

This video presents three characters roleplaying in the development of MiniSuave

Preview 01:23

In this video, we will be implementing our first function "OK" to enable Mark to send a response with the status code "Ok".

Implementing HTTP OK Response Handler

This video adds two more functions to send Internal Error and Not Found responses.  It also teaches how to remove duplicate code using partial application.

Preview 03:36

We will learn how to implement request filters to send responses only if the HTTP method matches. 

Adding Request Filters

During the previous video, we learned how to filter requests based on HTTP methods. Now, we'll be extending it to filter based on resource path.

Adding Path Filter

The implementation of request filters has broken the response function that we have implemented in the introductory videos. So, let's spend some time to fix it.

Fixing Broken Parts

In this video, we will be extending the MiniSuave library by adding an API to deal with headers in the Response. 

Adding Response Header

How about some time off to reflect? In this video, we will evaluate our MiniSuave design and see how can we make it better. 

Revisiting MiniSuave APIs

Function Composition is an integral part of functional programming. This video will help us to understand what we need to change in MiniSuave to enable Function Composition

Preview 05:05

In this video, we will be making a significant amount of changes in MiniSuave to make it elegant and easier to use.

Composing WebParts

We need to handle multiple kinds of requests in a web application. But MiniSuave is not yet designed for it. Let's add a new function "Choose" to make it happen.

Adding Choose

This video explains about the combinator pattern and how it has been applied in MiniSuave

Combinator Pattern

Congratulations for completing the course. Let's see where you can go from here. 

What's Next
About the Instructor
Tamizhvendan S
4.4 Average rating
8 Reviews
80 Students
1 Course
Lead Consultant at Ajira

Tamizh is a Pragmatic, Passionate and Polyglot Programmer. He started his programming journey at the age of 12, and the passion has not left him since then. 

He is a Full-Stack solution provider and has a wealth of experience in solving complex problems using different programming languages and technologies. F#, Node.js, Golang, Haskell are some of his favorites. 

Tamizh is also a functional programming evangelist and authored a book "F# Applied", a practical guide for web development in F# using Suave.