habit alternatives and similar packages
Based on the "Web" category.
Alternatively, view habit alternatives based on common mentions on social networks and blogs.
-
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
servant
Servant is a Haskell DSL for describing, serving, querying, mocking, documenting web applications and more! -
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
ghcjs-dom
Make Document Object Model (DOM) apps that run in any browser and natively using WebKitGtk
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of habit or a related project?
README
Haskell Bot it :: Message bot framework
Install
$ git clone https://github.com/airalab/habit && cd habit
$ stack setup
$ stack ghci
Run your story
The Story
is an abstraction about sparsed data getted from user
though dialogue.
helloStory :: Story a
helloStory _ = hello <$> question "How your name?"
<*> question "How your surname?"
<*> question "How old are you?"
As you see the story handler hello
is apply though the questions
to user responses.
type Name = Text
type Surname = Text
type Age = Int
hello :: Monad m => Name -> Surname -> Age -> m BotMessage
hello name surname age = do
return . toMessage $ "Hello, " <> name <> " " <> surname <> "!\n"
<> "You lost " <> (pack $ show age) <> " years =)"
To run the Story
simple pass it to storyBot
as value of mapping between
command an story. APIToken
type class defines token for given platform,
e.g. Telegram platform.
instance APIToken Telegram where
apiToken = "bot..."
main :: IO ()
main = runBot myBot
where myBot :: Bot Telegram ()
myBot = storyBot helpMsg [("/hello", helloStory)]
Full example [text](examples/Hello.hs).
*Note that all licence references and agreements mentioned in the habit README section above
are relevant to that project's source code only.