ollama-haskell-0.3.0.1: ollama-haskell.cabal
cabal-version: 3.0
name: ollama-haskell
version: 0.3.0.1
synopsis: Industry-grade Haskell client for the Ollama API
description:
A type-safe, well-tested Haskell client for interacting with
locally-running LLMs via the Ollama HTTP API. Supports chat,
text generation, embeddings, model management, streaming via
conduit, structured outputs, tool calling, and more.
category: Web, AI, Network
license: MIT
license-file: LICENSE
author: Tushar Adhatrao
maintainer: tusharadhatrao@gmail.com
copyright: 2024-2026 Tushar Adhatrao
homepage: https://github.com/tusharad/ollama-haskell
bug-reports: https://github.com/tusharad/ollama-haskell/issues
tested-with: GHC == 9.4.8, GHC == 9.6.7, GHC == 9.8.4, GHC == 9.10.3, GHC == 9.12.4
stability: stable
extra-doc-files:
README.md
CHANGELOG.md
doc/COMPARISON.md
source-repository head
type: git
location: https://github.com/tusharad/ollama-haskell
flag integration-tests
description: Build and run integration tests (requires running Ollama server)
default: False
manual: True
common warnings
ghc-options:
-Wall
-Wcompat
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wmissing-export-lists
-Wmissing-home-modules
-Wpartial-fields
-Wredundant-constraints
common lang
default-language: GHC2021
default-extensions:
StrictData
DerivingStrategies
DeriveGeneric
DeriveAnyClass
GeneralizedNewtypeDeriving
OverloadedStrings
ImportQualifiedPost
TypeApplications
RecordWildCards
NamedFieldPuns
LambdaCase
MultiWayIf
ScopedTypeVariables
BangPatterns
library
import: warnings, lang
hs-source-dirs: src
exposed-modules:
Ollama
Ollama.Client
Ollama.Client.Config
Ollama.API.Generate
Ollama.API.Chat
Ollama.API.Embed
Ollama.API.Models
Ollama.API.Models.Create
Ollama.API.Models.Pull
Ollama.API.Models.Push
Ollama.API.Blobs
Ollama.API.Ps
Ollama.API.Version
Ollama.Types
Ollama.Types.Message
Ollama.Types.Tool
Ollama.Types.Model
Ollama.Types.Options
Ollama.Types.Format
Ollama.Types.Format.SchemaBuilder
Ollama.Types.Common
Ollama.Error
Ollama.Streaming
Ollama.Testing
Ollama.Conversation
other-modules:
Ollama.Client.Internal
build-depends:
aeson >= 2.0 && < 3
, base >= 4.17 && < 5
, bytestring >= 0.10 && < 0.13
, case-insensitive >= 1.2 && < 1.3
, conduit >= 1.3 && < 1.4
, conduit-extra >= 1.3 && < 1.4
, containers >= 0.6 && < 0.9
, hashable >= 1.4 && < 1.6
, http-client >= 0.6 && < 0.8
, http-client-tls >= 0.2 && < 0.5
, http-types >= 0.7 && < 0.13
, mtl >= 2.2 && < 3
, retry >= 0.9 && < 0.10
, resourcet >= 1.3 && < 1.4
, stm >= 2.5 && < 3
, text >= 2.0 && < 3
, time >= 1.11 && < 2
, unliftio-core >= 0.2 && < 0.3
test-suite ollama-haskell-test
import: warnings, lang
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
Test.Ollama.Unit.Types
Test.Ollama.Unit.Error
Test.Ollama.Unit.Config
Test.Ollama.Unit.SchemaBuilder
Test.Ollama.Unit.Testing
Test.Ollama.Property.Arbitrary
Test.Ollama.Property.Roundtrip
Test.Ollama.Golden.Chat
Test.Ollama.Golden.Generate
Test.Ollama.Golden.Embed
Test.Ollama.Golden.Models
build-depends:
base
, ollama-haskell
, aeson
, bytestring
, containers
, QuickCheck >= 2.14
, tasty >= 1.5
, tasty-golden >= 2.3
, tasty-hunit
, tasty-quickcheck >= 0.10
, text
, time
, conduit
test-suite ollama-haskell-integration
import: warnings, lang
type: exitcode-stdio-1.0
hs-source-dirs: test-integration
main-is: Main.hs
if !flag(integration-tests)
buildable: False
build-depends:
base
, ollama-haskell
, aeson
, tasty
, tasty-hunit
, text
, time
benchmark ollama-haskell-bench
import: warnings, lang
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
build-depends:
base
, ollama-haskell
, aeson
, bytestring
, tasty >= 1.5
, tasty-bench >= 0.3
, text
executable ollama-example-basic-chat
import: warnings, lang
main-is: BasicChat.hs
hs-source-dirs: examples
build-depends:
base
, ollama-haskell
, text
executable ollama-example-streaming-chat
import: warnings, lang
main-is: StreamingChat.hs
hs-source-dirs: examples
build-depends:
base
, ollama-haskell
, text
executable ollama-example-tool-calling
import: warnings, lang
main-is: ToolCalling.hs
hs-source-dirs: examples
build-depends:
base
, ollama-haskell
, text
executable ollama-example-structured-output
import: warnings, lang
main-is: StructuredOutput.hs
hs-source-dirs: examples
build-depends:
base
, ollama-haskell
, text
executable ollama-example-embeddings
import: warnings, lang
main-is: Embeddings.hs
hs-source-dirs: examples
build-depends:
base
, ollama-haskell
, text
executable ollama-example-model-management
import: warnings, lang
main-is: ModelManagement.hs
hs-source-dirs: examples
build-depends:
base
, ollama-haskell
, text
executable ollama-example-all-features
import: warnings, lang
main-is: AllFeatures.hs
hs-source-dirs: examples
build-depends:
base
, ollama-haskell
, aeson
, text
, time