Logo

dev-resources.site

for different kinds of informations.

Introducing NeoHaskell v0.3.0: Triggers, Actions, and Services

Published at
8/4/2024
Categories
programming
opensource
cli
haskell
Author
nickseagull
Author
11 person written this
nickseagull
open
Introducing NeoHaskell v0.3.0: Triggers, Actions, and Services

We're thrilled to announce the release of NeoHaskell v0.3.0! This version brings significant enhancements to our event-driven architecture, making it even more powerful and flexible. The key improvements in this release focus on the introduction of triggers, renaming of core concepts for clarity, and further refinements.

From Commands to Actions: A Clearer Mental Model

In our ongoing effort to make NeoHaskell more intuitive, we've renamed the Command concept to Action. This change better reflects the nature of these operations as side effects that can be tracked and managed within our architecture.

Introducing Triggers: Unlocking a World of Possibilities

The introduction of triggers in v0.3.0 is a game-changer for NeoHaskell applications. Triggers provide a powerful and flexible way to handle asynchronous events and background processes, opening up a vast array of possibilities for your projects.

Let's start with a simple example - a time-based trigger:

tickTrigger =
  Time.triggerEveryMilliseconds 1000 (\_ -> Tick)
Enter fullscreen mode Exit fullscreen mode

This minimal trigger fires a Tick event every 1000 milliseconds. But don't let its simplicity fool you - this is just the tip of the iceberg!

With the trigger system in place, NeoHaskell is now poised to support a wide range of exciting applications:

  1. HTTP Servers: Imagine creating triggers that respond to incoming HTTP requests, allowing you to build full-fledged web applications.

  2. Chat Bots: Whether it's Discord, Telegram, or Slack, you could create triggers that listen for and respond to chat messages in real-time.

  3. IoT Applications: Set up triggers to handle data streams from IoT devices, enabling you to build sophisticated monitoring and control systems.

  4. Database Listeners: Create triggers that react to database changes, perfect for building reactive data processing pipelines.

  5. File System Watchers: Monitor file system events and trigger actions when files are created, modified, or deleted.

The possibilities are virtually endless. Whether you're building a simple CLI tool or a complex distributed system, triggers provide the foundation for handling real-world events in a clean, functional manner.

From Platform to Service: A More Focused Runtime

We've refined our core runtime concept, renaming Platform to Service. This change reflects a more focused approach to managing your application's lifecycle and event handling. Service is a much narrower concept that is much better understood by everyone. And it also opens up the possibility of executing multiple of those in a single application.

Get Involved

We're excited to see what the community builds with NeoHaskell v0.3.0! Here's how you can get started:

  • Check out our GitHub repository for the latest code
  • Join our Discord community to discuss ideas and get help

Your feedback and contributions are crucial as we continue to evolve NeoHaskell. Let's work together to create a more accessible and powerful development experience!

Happy coding!

Nick

haskell Article's
30 articles in total
Favicon
AritmΓ©tica de Peano em Haskell
Favicon
From C# to Haskell and Back Again: My Journey into Functional Programming
Favicon
gRPC, Haskell, Nix, love, hate
Favicon
Advent of Code and Aesthetics
Favicon
Writing APIs Without Servant vs. Using Servant
Favicon
Type-Level Web DSL in Haskell
Favicon
A Guide to Functional Programming
Favicon
Top Open Source functional programming technologies
Favicon
Scala is one of the best ways to learn Haskell
Favicon
More Haskell Diagrams: Images
Favicon
Introduction to Haskell Diagrams
Favicon
Executable Blog Posts: Second Take
Favicon
Udemy: Learning Path: Haskell: Functional Programming and Haskell
Favicon
Abusing Haskell: Executable Blog Posts
Favicon
NeoHaskell v0.4.0: Update with Concurrency Fixes and Architectural Improvements
Favicon
More Haskell Diagrams: Contribution Graph
Favicon
Scala for Haskell developers
Favicon
Introducing NeoHaskell v0.3.0: Triggers, Actions, and Services
Favicon
Common Lisp VS Haskell
Favicon
Most Modern Software engineers are not engineers at all.
Favicon
Parsers are relative bimonads
Favicon
Implementing Haskell's lazy evaluation in MoonBit (Part. 3)
Favicon
Hacking Watson with Haskell - Part 3
Favicon
Using niv to Manage Haskell Dependencies
Favicon
Hacking Watson with Haskell - Part 2
Favicon
Hacking Watson with Haskell - Part 1
Favicon
More Haskell Diagrams: Dynamic OpenGraph Images
Favicon
More Haskell Diagrams: Wrapping Text
Favicon
More Haskell Diagrams: OpenGraph Images
Favicon
Indexable Containers in Haskell

Featured ones: