Skip to content

Commit

Permalink
Change the project's home page once again.
Browse files Browse the repository at this point in the history
The "Features" section was updated and the NuGet installation box was removed to make space for more content.
  • Loading branch information
teo-tsirpanis committed Nov 25, 2020
1 parent 10e9198 commit cbab9ba
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions docsrc/content/index.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
# What is Farkle?

Farkle is a text parser library for F# and C#. It creates LALR grammars from composable objects that resemble parser combinators.
Farkle is a text parser library for .NET, featuring the best of both worlds: __LALR parser combinators__. Users define the terminals and nonterminals of their grammars, what to do when each of them is encountered, and Farkle takes care of the rest.

It can be [installed from NuGet][nuget].

## Features

* __Speed__: Farkle is fast, taking advantage of .NET features such as spans and dynamic code generation.
* __Integration with MSBuild__: Farkle can optionally integrate with MSBuild to enable features like [ahead-of-time grammar building](the-precompiler.html), which drastically reduces startup times.
* __Large file support__: Farkle can parse large files very efficiently.
* __Free software__: Farkle is available under the MIT License.
* __Speed__: Farkle is fast. Its performance is a top priority and lots of time has been invested in its optimization.
* __Language compatibility__: Farkle is usable from both C# and F#, with an intuitive API for each language.
* __Fast development cycle__: Unlike parser generators, Farkle does not generate any source files. Your grammars are type-safe and created entirely from code, allowing features like IntelliSense and real-time syntax error reporting.
* __Integration with MSBuild__: Farkle can optionally integrate with MSBuild to enable features like [ahead-of-time grammar building](the-precompiler.html) which drastically reduces startup times and catches grammar errors like LALR conflicts at compile time.
* __Large file support__: Farkle can parse large files without entirely reading them to memory.
* __Grammar introspection__: Farkle provides [APIs that allow your grammars to be inspected from code](reference/farkle-grammar-grammar.html).
* __Wide framework support__: Farkle targets .NET Standard 2.0, supporting .NET Framework 4.6.1+, .NET Core 2.0+, Xamarin, UWP and Unity.
<!-- * __Templating__: Farkle supports [creating templated text files from grammars](templating-reference.html) using [Scriban]. -->

[Learn more](choosing-a-parser.html) about Farkle's features, compared with its competition.

<div class="row">
<div class="span1"></div>
<div class="span6">
<div class="well well-small" id="nuget">
The Farkle library can be <a href="https://nuget.org/packages/Farkle">installed from NuGet</a>:
<pre>dotnet add package Farkle</pre>
</div>
</div>
<div class="span1"></div>
</div>
[Learn more](choosing-a-parser.html) about Farkle's features, compared with other .NET parsers.

## Documentation

Expand All @@ -47,6 +40,7 @@ The project is hosted on [GitHub][gh] where you can [report issues][issues], for
The library is available under the MIT license, which allows modification and
redistribution for both commercial and non-commercial purposes. For more information see the [License file][license] in the GitHub repository.

[nuget]: https://nuget.org/packages/Farkle
[scriban]: https://github.com/lunet-io/Scriban
[json-csharp]: https://github.com/teo-tsirpanis/Farkle/blob/master/sample/Farkle.Samples.CSharp/JSON.cs
[json-fsharp]: https://github.com/teo-tsirpanis/Farkle/blob/master/sample/Farkle.Samples.FSharp/JSON.fs
Expand Down

0 comments on commit cbab9ba

Please sign in to comment.