diff --git a/.gitignore b/.gitignore index 92b2793..648210e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .direnv +sytest +node_modules diff --git a/flake.nix b/flake.nix index 9b91313..de306e6 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,8 @@ flakePkgs = rec { # client = pkgs.callPackage ./client { inherit toolchain; }; + NetAsyncHTTPServer = + pkgs.perl536Packages.callPackage ./nix/NetAsyncHTTPServer.nix { }; }; in { packages = flake-utils.lib.flattenTree flakePkgs; @@ -20,8 +22,25 @@ devShell = pkgs.mkShell { # inputsFrom = with flakePkgs; [ client ]; - packages = (with pkgs; [ pkg-config ]) + packages = (with pkgs; [ pkg-config perl openssl ]) ++ (with toolchain; [ rustc cargo ]); + # ++ (with pkgs.perl536Packages; [ + # CPAN + # EmailMIME + # CryptEd25519 + # DigestSHA1 + # DigestHMAC + # DataDump + # EmailAddressXS + # FileSlurper + # Future + # IOAsync + # IOAsyncSSL + # JSON + # ListUtilsBy + # ModulePluggable + # NetAsyncHTTP + # flakePkgs.NetAsyncHTTPServer LIBRARY_PATH = pkgs.lib.concatStringsSep ":" [ "${pkgs.zlib}/lib" ]; diff --git a/nix/NetAsyncHTTPServer.nix b/nix/NetAsyncHTTPServer.nix new file mode 100644 index 0000000..84d6b0d --- /dev/null +++ b/nix/NetAsyncHTTPServer.nix @@ -0,0 +1,15 @@ +{ buildPerlModule, lib, fetchurl, IOAsync, TestMetricsAny, HTTPMessage +, TestIdentity, TestRefcount }: + +buildPerlModule { + pname = "Net-Async-HTTP"; + version = "0.48"; + src = fetchurl { + url = + "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-Server-0.13.tar.gz"; + sha256 = "sha256-yk3kcfIieNI5PIqy7G56xO8hfbRjXS3Mi6KoynIhFO4="; + }; + + buildInputs = [ TestMetricsAny TestIdentity TestRefcount ]; + propagatedBuildInputs = [ IOAsync HTTPMessage ]; +} diff --git a/server/src/room.rs b/server/src/room.rs index dfab2a8..ef773e6 100644 --- a/server/src/room.rs +++ b/server/src/room.rs @@ -1,6 +1,11 @@ use tokio::sync::broadcast::{Receiver, Sender}; -pub struct Message {} +pub struct UserId(String); + +pub struct Message { + sender: UserId, + body: String, +} pub type MessageTx = Sender; pub type MessageRx = Receiver;