All Projects → saschatimme → Elm Phoenix

saschatimme / Elm Phoenix

Licence: other
An Elm client for Phoenix Channels

Programming Languages

elm
856 projects

Labels

Projects that are alternatives of or similar to Elm Phoenix

Littlechat
A peer-to-peer video chat application made using Phoenix, LiveView, and WebRTC. Want to know how it's made? Read the blog post: https://littlelines.com/blog/2020/07/06/building-a-video-chat-app-in-phoenix-liveview
Stars: ✭ 144 (-21.31%)
Mutual labels:  phoenix
Veil
Simple passwordless authentication for your Phoenix apps
Stars: ✭ 153 (-16.39%)
Mutual labels:  phoenix
Logster
Easily parsable single line, plain text and JSON logger for Plug and Phoenix applications
Stars: ✭ 171 (-6.56%)
Mutual labels:  phoenix
Captain Fact Api
🔎 CaptainFact - API. The one that serves and process all the data for https://captainfact.io
Stars: ✭ 145 (-20.77%)
Mutual labels:  phoenix
Mipha
Proj Elixir Forum build with phoenix 1.5.
Stars: ✭ 153 (-16.39%)
Mutual labels:  phoenix
Passport
Provides authentication for phoenix application
Stars: ✭ 159 (-13.11%)
Mutual labels:  phoenix
Ex oauth2 provider
Making OAuth 2 provider and authentication with http bearer as simple as possible for Elixir and Phoenix apps
Stars: ✭ 137 (-25.14%)
Mutual labels:  phoenix
Ueberauth example
Example Phoenix application using Überauth for authentication
Stars: ✭ 180 (-1.64%)
Mutual labels:  phoenix
Ex money
A [work-in-progress] self-hosted personal finance app
Stars: ✭ 154 (-15.85%)
Mutual labels:  phoenix
Phoenix Ecto Encryption Example
🔐 A detailed example for how to encrypt data in a Phoenix (Elixir) App before inserting into a database using Ecto Types
Stars: ✭ 166 (-9.29%)
Mutual labels:  phoenix
Phoenix swoosh
Swoosh <3 Phoenix
Stars: ✭ 145 (-20.77%)
Mutual labels:  phoenix
The Zen Of Elixir
Collection of top articles reflecting the Zen of Elixir
Stars: ✭ 148 (-19.13%)
Mutual labels:  phoenix
Inquisitor
Composable query builder for Ecto
Stars: ✭ 162 (-11.48%)
Mutual labels:  phoenix
Rummage phoenix
Full Phoenix Support for Rummage. It can be used for searching, sorting and paginating collections in phoenix.
Stars: ✭ 144 (-21.31%)
Mutual labels:  phoenix
Appsignal Elixir
🟪 AppSignal for Elixir package
Stars: ✭ 176 (-3.83%)
Mutual labels:  phoenix
Codefund
Deprecated. Please go to https://github.com/gitcoinco/code_fund_ads
Stars: ✭ 140 (-23.5%)
Mutual labels:  phoenix
Elixir Runtime
The community-supported runtime for Elixir on Google App Engine.
Stars: ✭ 158 (-13.66%)
Mutual labels:  phoenix
Phoenix client
Elixir Phoenix Client for Channels
Stars: ✭ 180 (-1.64%)
Mutual labels:  phoenix
New Relixir
New Relic tracking for Phoenix and Plug applications.
Stars: ✭ 178 (-2.73%)
Mutual labels:  phoenix
Tune
A streamlined Spotify client and browser with a focus on performance and integrations.
Stars: ✭ 166 (-9.29%)
Mutual labels:  phoenix

Build Status

elm-phoenix

An Elm client for Phoenix Channels.

This package makes it easy to connect to Phoenix Channels, but in a more declarative manner than the Phoenix Socket Javascript library. Simply provide a Socket and a list of Channels you want to join and this library handles the unpleasent parts like opening a connection, joining channels, reconnecting after a network error and managing replies.

Getting Started

Declare a socket you want to connect to and the channels you want to join. The effect manager will open the socket connection, join the channels. See Phoenix.Socket and Phoenix.Channel for more configuration details.

import Phoenix
import Phoenix.Socket as Socket
import Phoenix.Channel as Channel

type Msg = NewMsg Value | ...

socket =
    Socket.init "ws://localhost:4000/socket/websocket"

channel =
    Channel.init "room:lobby"
        -- register an handler for messages with a "new_msg" event
        |> Channel.on "new_msg" NewMsg

subscriptions model =
    Phoenix.connect socket [channel]

Installation:

Since this package is an effect manager it is at the moment not aviable via elm package. Thus the recommended way to install the package is to use elm-github-install. Simply add in elm-package.json "saschatimme/elm-phoenix": "0.3.0 <= v < 1.0.0" to your dependencies:

# elm-package.json
{
  ...
  "dependencies": {
    ...
    "saschatimme/elm-phoenix": "0.3.0 <= v < 1.0.0",
    ...
  }
  ...
}

and install the package with elm-github-install.

Please note: Depending on your setup the example Phoenix app in this repo can cause errors. One solution would be to simply delete the example folder. See this issue for more details.

The last compatible version with Elm 0.17 is 0.1.0.

Documentation

You can find the documentation here (currently Phoenix.Presence is missing).

Example

A simple example chat application can be found here.

Contributing

Contributions are welcome! If you get stuck or don't understand some details just get in touch. If you want to contribute but don't know what here are some ideas:

Feedback

If you use the package in your project, I would love to hear how your experience is and if you have some ideas for improvements!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].