Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 15 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
# fsharp.org

This repository hosts [the fsharp.org web site](https://fsharp.org/). Pull requests are welcome. The web site code is hosted in the `gh-pages` branch and is created using the tools provided by GitHub:
This repository hosts the [fsharp.org](https://fsharp.org/) website. Pull requests are welcome.

* Fork this repository
* Switch to [the `gh-pages` branch](https://github.com/fsharp/fsharp.org/tree/gh-pages)
* The site is using [Jekyll for templating](http://jekyllrb.com/docs/usage/)
The site is built using the popular static site generator [Jekyll](http://jekyllrb.com/docs/usage/),
which converts Markdown templates to HTML pages.

## Editing content

Most edits can be made by simply editing the appropriate markdown file. If you prefer to make your edit directly within github, there is a github actions which should build your fork automatically so you can confirm your changes look okay.
Most edits can be made by simply editing the appropriate Markdown file. Normally you'd simply:

- Fork the repository
- Make some changes locally
- Test them locally (e.g. by running `jekyll serve`)
- Open a pull request

If you prefer to make your edit directly within GitHub, there is a GitHub
Action which should build your fork automatically so you can confirm your
changes look okay.

## Testimonials

Expand All @@ -33,7 +41,7 @@ Example:
code: |
let hello name =
printfn $"Hello, {name}!"

hello "github"
---
## I am the title
Expand All @@ -42,7 +50,7 @@ Example:
<!--more-->
- **Desktop users** can see this extra content
- **Mobile users** will miss out

Not ideal, but oh well.


Expand Down
9 changes: 4 additions & 5 deletions community/projects/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ all efforts which support our [mission](../../foundation/). Some of the open com
you can contribute to are below.

These projects may be at an early stage, and are not necessarily appropriate for production
use. Out of small beginnings, great things come! To add a project to this list [edit this page](https://github.com/fsharp/fsharp.org/edit/gh-pages/community/projects/index.md) and submit a pull request.
use. Out of small beginnings, great things come! To add a project to this list [edit this page](https://github.com/fsharp/fsharp.org/edit/main/community/projects/index.md) and submit a pull request.

Tags: <a href="#compiler">Compiler</a>, <a href="#editing">Editing</a>, <a href="#devtools">Dev Tools</a>, <a href="#data-access">Data Access</a>,
<a href="#data-science">Data Science</a>, <a href="#visualization">Visualization</a>, <a href="#libraries">Functional Programming</a>, <a href="#text">Text Programming</a>,
Expand Down Expand Up @@ -134,7 +134,7 @@ Tags: <a href="#compiler">Compiler</a>, <a href="#editing">Editing</a>, <a href=
and time series manipulation and for scientific programming. It supports working with structured data
frames, ordered and unordered data, as well as time series. Deedle is designed to work well for
exploratory programming using F# and C# interactive console, but can be also used in
efficient compiled .NET code.
efficient compiled .NET code.

* [The MATLAB Type Provider for F#](http://bayardrock.github.io/Matlab-Type-Provider/) - An F# type provider
for higher-fidelity integration between F# and MATLAB. Early stages. Contributors and reviewers welcome.
Expand All @@ -152,7 +152,7 @@ Tags: <a href="#compiler">Compiler</a>, <a href="#editing">Editing</a>, <a href=

* [XPlot](http://fslab.org/XPlot/) - XPlot is a data visualization package for the F# programming language powered by popular JavaScript charting libraries. It uses Google and Plotly's powerful and free data visualization libraries based on HTML5/SVG technology. You can access the HTML for the charts programatically and use the library from F# Interactive by displaying browser windows.

* [Plotly.NET](https://github.com/plotly/Plotly.NET/) - a powerful and free charting library. Plotly.NET provides Plotly's awesome graphing support with strongly typed style options for F#.
* [Plotly.NET](https://github.com/plotly/Plotly.NET/) - a powerful and free charting library. Plotly.NET provides Plotly's awesome graphing support with strongly typed style options for F#.


<h2 class="anchor" id="math" class="anchor">Community Projects: Math Libraries</h2>
Expand Down Expand Up @@ -257,7 +257,7 @@ Tags: <a href="#compiler">Compiler</a>, <a href="#editing">Editing</a>, <a href=


<h2 class="anchor" id="distribution" class="anchor">Community Projects: Distribution Tools</h2>

* [f0](https://github.com/joshcough/f0) - A binary [de]serialization combinator library, with binary-format
phantom types and a compatible Scala partner implementation.

Expand Down Expand Up @@ -350,4 +350,3 @@ Tags: <a href="#compiler">Compiler</a>, <a href="#editing">Editing</a>, <a href=
<h2 class="anchor" id="audioprocessing" class="anchor">Community Projects: Audio Processing</h2>

* [FSound](https://github.com/albertp007/FSound) - A sound processing library written in F#

37 changes: 18 additions & 19 deletions guides/cloud/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ headline: Guide - Cloud Programming with F#
redirect_from: "/cloud/index.html"
---

Cloud computing relies on leveraging multiple integrated services. Using multiple services required a unique set
of technologies and capabilities, and F# excels in this domain. With the recent rise of cloud solutions, it is becoming increasingly easy to deploy multiple services "in the cloud", expanding what is possible both by storing large amounts of data and running heavy computations distributed across clusters of machines.
The combination of built in support for asynchronous workflows, data processing capabilities, computation expressions,
extensible syntax, composability, expressiveness for numeric code and more make F# uniquely suited to develop
scalable cloud solutions efficiently.
Cloud computing relies on leveraging multiple integrated services. Using multiple services required a unique set
of technologies and capabilities, and F# excels in this domain. With the recent rise of cloud solutions, it is becoming increasingly easy to deploy multiple services "in the cloud", expanding what is possible both by storing large amounts of data and running heavy computations distributed across clusters of machines.
The combination of built in support for asynchronous workflows, data processing capabilities, computation expressions,
extensible syntax, composability, expressiveness for numeric code and more make F# uniquely suited to develop
scalable cloud solutions efficiently.

This guide is an overview of the packages and tools for scalable compute, messaging, storage, and data processing with F#,
particularly for taking advantage of cloud-computing resources.
This guide is an overview of the packages and tools for scalable compute, messaging, storage, and data processing with F#,
particularly for taking advantage of cloud-computing resources.

For cloud-hosted web programming and services, refer to the [Web Programming Guide](../web/).

<div class="jumbotron visible-lg calloutBox" id="how-to-add-testimonial">
<p>To contribute to this guide <a href="https://github.com/fsharp/fsharp.org/edit/gh-pages/guides/cloud/index.md">edit this page</a>. These resources are for educational purposes. </p>
</div>
<div class="jumbotron visible-lg calloutBox" id="how-to-add-testimonial">
<p>To contribute to this guide <a href="https://github.com/fsharp/fsharp.org/edit/main/guides/cloud/index.md">edit this page</a>. These resources are for educational purposes. </p>
</div>

* auto-gen TOC:
{:toc}
Expand All @@ -41,21 +41,21 @@ coherent stack for type-safe, flexible, web-enabled applications that can be wri

#### [Microsoft Azure](https://docs.microsoft.com/dotnet/articles/fsharp/using-fsharp-on-azure/)

[Microsoft Azure](https://azure.microsoft.com/) provides access to Microsoft's worldwide datacenters through services including
virtual machines, geo-redundant storage, database clusters, website deployment and other services.
[Microsoft Azure](https://azure.microsoft.com/) provides access to Microsoft's worldwide datacenters through services including
virtual machines, geo-redundant storage, database clusters, website deployment and other services.

* [Using F# on Azure](https://docs.microsoft.com/dotnet/articles/fsharp/using-fsharp-on-azure/) - Microsoft's comprehensive guide to using F# on Azure.

#### [Amazon Web Services](http://aws.amazon.com)

Amazon Web Services (AWS) provide a large array of on-demand and managed computing and
hosting services. Amazon offers a .NET SDK for managing the AWS services,
[described here](http://aws.amazon.com/sdkfornet/). This SDK provides facilities for managing
Amazon Web Services (AWS) provide a large array of on-demand and managed computing and
hosting services. Amazon offers a .NET SDK for managing the AWS services,
[described here](http://aws.amazon.com/sdkfornet/). This SDK provides facilities for managing
storage, compute instances, and other Amazon services.
Some additional resources for using F# and .NET on Amazon's AWS service:

* [FSharp.AWS.DynamoDB](https://github.com/fsprojects/FSharp.AWS.DynamoDB#fsharpawsdynamodb) - an F# wrapper over the standard Amazon.DynamoDB library which allows you to represent table items using F# records and perform updates, queries and scans using F# quotation expressions

### Scalable Data Programming

F# can be used with many scalable data-storage systems. Some are accessible via the Cloud SDKs outlined above.
Expand Down Expand Up @@ -96,7 +96,7 @@ The [Orleans](https://dotnet.github.io/orleans/) framework provides a straightfo

#### MPI

* [MPI .NET](https://github.com/mpidotnet/MPI.NET/) - A C# implementation of the popular [Message Passing Interface (MPI) protocol](http://en.wikipedia.org/wiki/Message_Passing_Interface).
* [MPI .NET](https://github.com/mpidotnet/MPI.NET/) - A C# implementation of the popular [Message Passing Interface (MPI) protocol](http://en.wikipedia.org/wiki/Message_Passing_Interface).

* [MS-MPI](http://msdn.microsoft.com/library/bb524831.aspx) - Microsoft's implementation of the MPI protocol, available on some versions of Windows Server.

Expand All @@ -107,4 +107,3 @@ The [Orleans](https://dotnet.github.io/orleans/) framework provides a straightfo
[Docker](https://www.docker.io/) automates the deployment of applications inside [software containers](http://en.wikipedia.org/wiki/Operating_system%E2%80%93level_virtualization), by providing an additional layer of abstraction and automation of operating system–level virtualization on Linux.

F# is available in the [official Docker images for the .NET SDK](https://hub.docker.com/_/microsoft-dotnet-sdk).

21 changes: 10 additions & 11 deletions guides/data-access/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ headline: Guide - Data Access with F#
redirect_from: "/data-access/index.html"
---

F# supports all common data import and access techniques. In addition, the type provider feature of
F# brings simplicity and flexibility to accessing data, including databases, web-scale data and structured
text formats like JSON, and XML.
F# supports all common data import and access techniques. In addition, the type provider feature of
F# brings simplicity and flexibility to accessing data, including databases, web-scale data and structured
text formats like JSON, and XML.

If the data access libraries you need are not listed here, you can search for them on [nuget](http://nuget.org).

Expand All @@ -33,15 +33,15 @@ Some resources are listed below:

* [FSharp.Data.SqlClient](http://fsprojects.github.io/FSharp.Data.SqlClient/) - Use SQL to specify your queries, explore Stored Procedures, User Defined Types and Functions with IntelliSense right in your F# code. Requries SQL Server 2012+ or SQL Azure.

* [Rezoom.SQL](https://github.com/rspeele/Rezoom.SQL) - Statically typed SQL for F#. Rezoom.SQL is an F# ORM for SQL databases. It integrates with the F# compiler via a generative type provider to statically typecheck its own dialect of SQL. It knows how to translate this SQL dialect to various backends. Currently it supports SQLite, SQL Server, and PostgreSQL. The type provider makes it fast and easy to write SQL statements, run them, and consume their results from your F# code with full type safety. You don't need to install any editor extensions or custom tooling, just add a NuGet package and you're off and running
* [Rezoom.SQL](https://github.com/rspeele/Rezoom.SQL) - Statically typed SQL for F#. Rezoom.SQL is an F# ORM for SQL databases. It integrates with the F# compiler via a generative type provider to statically typecheck its own dialect of SQL. It knows how to translate this SQL dialect to various backends. Currently it supports SQLite, SQL Server, and PostgreSQL. The type provider makes it fast and easy to write SQL statements, run them, and consume their results from your F# code with full type safety. You don't need to install any editor extensions or custom tooling, just add a NuGet package and you're off and running

* [Dapper.FSharp](https://github.com/Dzoukr/Dapper.FSharp) - Lightweight F# extension for StackOverflow Dapper with support for MSSQL, MySQL, and PostgreSQL.

* [Npgsql.FSharp](https://github.com/Zaid-Ajaj/Npgsql.FSharp) - A thin F#-friendly layer for the Npgsql data provider for PostgreSQL. For an optimal developer experience, this library is made to work with [Npgsql.FSharp.Analyzer](https://github.com/Zaid-Ajaj/Npgsql.FSharp.Analyzer) which is a F# analyzer that will verify the query syntax and perform type-checking against the parameters and the types of the columns from the result set.
* [Npgsql.FSharp](https://github.com/Zaid-Ajaj/Npgsql.FSharp) - A thin F#-friendly layer for the Npgsql data provider for PostgreSQL. For an optimal developer experience, this library is made to work with [Npgsql.FSharp.Analyzer](https://github.com/Zaid-Ajaj/Npgsql.FSharp.Analyzer) which is a F# analyzer that will verify the query syntax and perform type-checking against the parameters and the types of the columns from the result set.

* [Donald](https://github.com/pimbrouwers/Donald) - Donald is a well-tested library, with pleasant ergonomics that aims to make working with ADO.NET safer and a lot more succinct. It is an entirely generic abstraction, and will work with all ADO.NET implementations.

* [SqlHydra](https://github.com/JordanMarr/SqlHydra) - SqlHydra is a suite of NuGet packages for working with databases in F#. It includes a set of dotnet tools for generating types for various database providers, and a querying library that works with SQL Server, SQLite, PostgreSql, MySql, Oracle and Firebird.
* [SqlHydra](https://github.com/JordanMarr/SqlHydra) - SqlHydra is a suite of NuGet packages for working with databases in F#. It includes a set of dotnet tools for generating types for various database providers, and a querying library that works with SQL Server, SQLite, PostgreSql, MySql, Oracle and Firebird.

* [SqlFun](https://github.com/jacentino/SqlFun) - SqlFun is a tool for writing data access code in F# functional way.
It's fast, type safe and gives you all powers of SQL, no custom query language constraints you.
Expand All @@ -59,13 +59,12 @@ It's also lightweight, you need to know a general idea and few functions (and, o

* [MongoDB.NET](https://github.com/mongodb/mongo-csharp-driver) - The official .NET Driver for MongoDB, despite its name you can use it from F# as well.

* [Mondocks](https://github.com/AngelMunoz/Mondocks) - An alternative way to interact with MongoDB databases from F# that allows you to use mongo-idiomatic constructs
* [Mondocks](https://github.com/AngelMunoz/Mondocks) - An alternative way to interact with MongoDB databases from F# that allows you to use mongo-idiomatic constructs

<br />

<div class="jumbotron visible-lg calloutBox" id="how-to-add-testimonial">
<p>To contribute to this guide <a href="https://github.com/fsharp/fsharp.org/edit/gh-pages/guides/data-access/index.md">edit this page</a>. These resources are for educational purposes. </p>
</div>
<div class="jumbotron visible-lg calloutBox" id="how-to-add-testimonial">
<p>To contribute to this guide <a href="https://github.com/fsharp/fsharp.org/edit/main/guides/data-access/index.md">edit this page</a>. These resources are for educational purposes. </p>
</div>

<br />

Loading