Fyper 1.1.0
dotnet add package Fyper --version 1.1.0
NuGet\Install-Package Fyper -Version 1.1.0
<PackageReference Include="Fyper" Version="1.1.0" />
<PackageVersion Include="Fyper" Version="1.1.0" />
<PackageReference Include="Fyper" />
paket add Fyper --version 1.1.0
#r "nuget: Fyper, 1.1.0"
#:package Fyper@1.1.0
#addin nuget:?package=Fyper&version=1.1.0
#tool nuget:?package=Fyper&version=1.1.0
Fyper
Type-safe Cypher queries in F#. Plain records as schema, computation expressions as queries, parameterized by default.
type Person = { Name: string; Age: int }
type Movie = { Title: string; Released: int }
type ActedIn = { Roles: string list }
let findActors = cypher {
for p in node<Person> do
for m in node<Movie> do
matchRel (p -- edge<ActedIn> --> m)
where (p.Age > 30)
orderBy m.Released
select (p.Name, m.Title)
}
// MATCH (p:Person) MATCH (m:Movie) MATCH (p)-[:ACTED_IN]->(m)
// WHERE p.age > $p0 ORDER BY m.released RETURN p.name, m.title
Features
- Zero boilerplate -- F# records = graph schema
- Compile-time safety -- quotation-based CE
- Parameterized by default -- all values become
$p0,$p1 - Multi-backend -- Neo4j + Apache AGE from the same query
- Zero dependencies -- only FSharp.Core
Quick Start
dotnet add package Fyper
dotnet add package Fyper.Neo4j # or Fyper.Age
open Fyper
open Fyper.Neo4j
let driver = new Neo4jDriver(
Neo4j.Driver.GraphDatabase.Driver("bolt://localhost:7687",
Neo4j.Driver.AuthTokens.Basic("neo4j", "password")))
task {
let! people = query |> Cypher.executeAsync driver
}
CE Operations
where | select | selectDistinct | orderBy | orderByDesc | skip | limit | matchRel | matchPath | create | createRel | set | delete | detachDelete | merge | onMatch | onCreate | unwind | withClause | caseWhen | count | sum | avg | collect | cypherMin | cypherMax
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FSharp.Core (>= 10.1.201)
-
net8.0
- FSharp.Core (>= 10.1.201)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Fyper:
| Package | Downloads |
|---|---|
|
Fyper.Neo4j
Neo4j Bolt driver for Fyper — the type-safe F# Cypher query builder. Connects Fyper queries to Neo4j databases via the official Neo4j.Driver. |
|
|
Fyper.Age
Apache AGE (PostgreSQL) driver for Fyper — the type-safe F# Cypher query builder. Run Fyper queries against PostgreSQL with the AGE graph extension. |
|
|
Fyper.Parser
Zero-dependency Cypher query parser for F#. Parses Cypher strings into Fyper's typed AST (discriminated unions). Useful for query analysis, transformation, and validation. |
GitHub repositories
This package is not used by any popular GitHub repositories.