Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fresheyeball/elm-node
Node support for Elm
https://github.com/fresheyeball/elm-node
Last synced: 7 days ago
JSON representation
Node support for Elm
- Host: GitHub
- URL: https://github.com/fresheyeball/elm-node
- Owner: Fresheyeball
- License: mit
- Created: 2015-11-24T00:43:28.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-02-10T06:30:46.000Z (over 8 years ago)
- Last Synced: 2024-05-09T13:41:11.720Z (6 months ago)
- Language: Elm
- Homepage:
- Size: 608 KB
- Stars: 14
- Watchers: 5
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Elm Node
This project is a temporary monolith. Ideally getting broken into multiple packages. But for the sake of progress development its a cluster.
This project is split into 2 halves, Low Level for Native bindings, and High Level for framework API's.
## Completed Low Level Bindings
- Streams
- File System
- Process
- Zlib### In Progress
- Network
- Http
- DNSSee more about current status of Native bindings [here](/NodeNamespace.md)
## Exposed Modules
Currently exposed modules you can try out right now:
- Network
- Network.Socket
- Streams.Types
- Streams.String
- Streams.Buffer
- Streams.Chunk
- Streams
- Process
- Process.Types
- Process.User
- Process.Streams
- FileSystem.Streams.Read
- FileSystem.Streams.Write
- FileSystem.Types
- FileSystem.Write.String
- FileSystem.Write.String.Descriptor
- FileSystem.Write.Buffer
- FileSystem.Write.Buffer.Descriptor
- FileSystem.Write.Chunk
- FileSystem.Descriptor
- FileSystem.Watch
- FileSystem.Read
- FileSystem
- DomainNameService
- Chunk
- Chunk.Types
- Compression
- Compression.Types
- Console
- Console.Color
- Http.Types
- Http.StatusCode
- Http.Agent
- Http.Agent.TLS
- Http.Server
- Http.Server.TLS## Goals
### High Level API to node things
([pure flavor](http://vignette2.wikia.nocookie.net/en.futurama/images/0/00/TheEssenceofPureFlavour.png/revision/latest?cb=20110627121631)s most likely as IO builders, that consumers must eventually `run : pureFlavor -> Task x ()`)
- Streams
- Either a pure flavor that is really a `list` kinda like [streams](https://www.stackage.org/lts-3.15/package/streams-3.2.1)
- Or a higher level bindings that is still impure like the popular [io-streams](https://www.stackage.org/lts-3.15/package/io-streams-1.3.2.0)
- Pure File System
- `FS` as a `type`, coupled with `runFS : FS FSError () -> Task FSError ()`
- Basic server abstraction
- Marshall-able pure `Request` and `Response` types
- Server side code as `Request -> Response`
- Startapp flavor to based on `foldp` on routes
- Sinatra style routing abstraction
- `param` capture
- `Elm` as a `Response` constructor
- Shared `Mailbox` between the client and server backed with web-sockets.### Not on the table right now (but maybe later)
- SQLlite bindings
- Mongo DB persistence and querying around native Elm types.
General purpose node bindings## Examples
```bash
sh examples//run.sh
```