New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

io.github.scala-loci:scala-loci-communicator-webrtc_2.12

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

io.github.scala-loci:scala-loci-communicator-webrtc_2.12

ScalaLoci WebRTC communicator

  • 0.5.0
  • Source
  • Maven
  • Socket score

Version published
Maintainers
1
Source

ScalaLoci

Build License Release

ScalaLoci is a distributed programming language embedded into Scala. The language provides a coherent model based on placement types that enables reasoning about distributed data flows, supporting multiple software architectures via dedicated language features and abstracting over low-level communication details and data conversions. ScalaLoci simplifies developing distributed systems, reduces error-prone communication code and favors early detection of bugs.

Getting ScalaLoci

  1. Enable support for macro annotations in your build.sbt:

    • for Scala 2.13

      scalacOptions += "-Ymacro-annotations"
      
    • for Scala 2.11 or 2.12 (Macro Paradise Plugin)

      addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.patch)
      
  2. Add the ScalaLoci dependencies that you need for your system to your build.sbt:

    1. ScalaLoci language (always required)

      libraryDependencies ++= Seq(
        "io.github.scala-loci" %% "scala-loci-language" % "0.5.0" % "compile-internal",
        "io.github.scala-loci" %% "scala-loci-language-runtime" % "0.5.0")
      
    2. Transmitter for the types of values to be accessed remotely (built-in Scala types and standard collections are directly supported without additional dependencies)

      • REScala reactive events and signals

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-language-transmitter-rescala" % "0.5.0"
        
    3. Network communicators to connect the different components of the distributed system

      • TCP [JVM only]

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-communicator-tcp" % "0.5.0"
        
      • WebSocket (using web browser APIs) [JS only, client only]

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-communicator-ws-webnative" % "0.5.0"
        
      • WebSocket (using Akka HTTP) [JVM only]

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-communicator-ws-akka" % "0.5.0"
        
      • WebSocket (Play integration using Akka HTTP) [JVM only]

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-communicator-ws-akka-play" % "0.5.0"
        
      • WebSocket (using Javalin) [JVM only, server only]

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-communicator-ws-javalin" % "0.5.0"
        
      • WebSocket (using Jetty) [JVM only]

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-communicator-ws-jetty" % "0.5.0"
        
      • WebRTC (using web browser APIs) [JS only]

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-communicator-webrtc" % "0.5.0"
        
    4. Serializer for network communication

      • µPickle serialization

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-serializer-upickle" % "0.5.0"
        
      • Circe serialization

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-serializer-circe" % "0.5.0"
        
      • Jsoniter Scala serialization

        libraryDependencies +=
          "io.github.scala-loci" %% "scala-loci-serializer-jsoniter-scala" % "0.5.0"
        

Using ScalaLoci network communication as a library

ScalaLoci’s underlying network communication library abstracting over different network protocols can be used directly without ScalaLoci’s language abstractions. The library provides pluggable communicators for different network protocols and transmitters implementing the remote transmission semantics for values of different types.

Add the ScalaLoci dependencies that you need for your system to your build.sbt:

  1. ScalaLoci communication library (always required)

    libraryDependencies +=
      "io.github.scala-loci" %% "scala-loci-communication" % "0.5.0"
    
  2. Transmitter for the types of values to be accessed remotely (built-in Scala types and standard collections are directly supported without additional dependencies)

    • REScala reactive events and signals

      libraryDependencies +=
        "io.github.scala-loci" %% "scala-loci-transmitter-rescala" % "0.5.0"
      
  3. Network communicators to connect the different components of the distributed system (same as above)

  4. Serializer for network communication (same as above)

Examples and Case Studies

FAQs

Package last updated on 12 Dec 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc