{"componentChunkName":"component---src-templates-modal-page-js","path":"/caliban","result":{"pageContext":{"node":{"slug":{"current":"caliban"},"name":"Caliban","githubUrl":"https://github.com/ghostdogpr/caliban","description":"Purely functional library for building GraphQL servers and clients in Scala.","developer":null,"price":"Free","url":"https://ghostdogpr.github.io/caliban/","tags":[{"id":"9119a567-9cee-52f9-9a6e-d188d027dd15","name":"Scala","slug":{"current":"scala"}}],"logo":{"asset":{"url":"https://cdn.sanity.io/images/g5bd2nk6/production/67b3866441d074ff24fa0ef1e5a44692b6c70028-300x300.svg"}},"categories":[{"name":"Utilities","slug":{"current":"utilities"}}],"_rawContent":[{"_key":"646412ec2e33","_type":"block","children":[{"_key":"646412ec2e330","_type":"span","marks":[],"text":"Caliban is a purely functional library for building GraphQL servers and clients in Scala."}],"markDefs":[],"style":"normal"},{"_key":"572926d29ccc","_type":"block","children":[{"_key":"572926d29ccc0","_type":"span","marks":[],"text":"The design principles behind the library are the following:"}],"markDefs":[],"style":"normal"},{"_key":"cb4d7f0dbedd","_type":"block","children":[{"_key":"cb4d7f0dbedd0","_type":"span","marks":[],"text":"minimal amount of boilerplate: no need to manually define a schema for every type in your API."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"},{"_key":"ce6f150d4482","_type":"block","children":[{"_key":"ce6f150d44820","_type":"span","marks":[],"text":"pure interface: errors and effects are returned explicitly (no exceptions thrown), all returned types are referentially transparent (no Future)."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"},{"_key":"03343dbe84f1","_type":"block","children":[{"_key":"03343dbe84f10","_type":"span","marks":[],"text":"clean separation between schema definition and implementation: schema is defined and validated at compile time using Scala standard types, resolver (RootResolver) is a simple value provided at runtime."}],"level":1,"listItem":"bullet","markDefs":[],"style":"normal"}]},"targetPath":"","modalType":"tool"}},"staticQueryHashes":[]}