Convert Figma logo to code with AI

weaveworks logoweave

Simple, resilient multi-host containers networking and more.

6,626
681
6,626
529

Top Related Projects

6,557

Cloud native networking and network security

22,159

eBPF-based Networking, Security, and Observability

9,167

flannel is a network fabric for containers, designed for Kubernetes

5,800

Container Network Interface - networking for Linux containers

3,747

Open vSwitch

Quick Overview

Weave is a networking solution for Docker containers and hosts. It creates a virtual network that connects Docker containers across multiple hosts and enables their automatic discovery. Weave allows containers to communicate as if they were on the same host, without reconfiguring the network or Docker.

Pros

  • Easy to set up and use, with minimal configuration required
  • Provides secure and encrypted communication between containers
  • Supports multicast networking and service discovery
  • Works across different cloud providers and on-premises infrastructure

Cons

  • Can introduce some network overhead due to its overlay network approach
  • May require additional resources on host machines
  • Learning curve for advanced features and troubleshooting
  • Limited support for non-Docker containerization technologies

Getting Started

To get started with Weave, follow these steps:

  1. Install Weave on your Docker hosts:
curl -L git.io/weave -o /usr/local/bin/weave
chmod +x /usr/local/bin/weave
  1. Launch Weave on each host:
weave launch
  1. Start your Docker containers with Weave:
weave run <docker-run-arguments>

For example:

weave run -d --name web nginx
  1. Connect to containers on different hosts:
weave expose
docker run -it ubuntu
ping web

This will allow you to ping the web container from any other container in the Weave network, regardless of which host it's running on.

Competitor Comparisons

6,557

Cloud native networking and network security

Pros of Calico

  • Better performance and scalability for large clusters
  • More advanced network policy features and fine-grained control
  • Native integration with Kubernetes and other container orchestrators

Cons of Calico

  • More complex setup and configuration compared to Weave
  • Requires more system resources, especially in large deployments
  • Less suitable for multi-cloud or hybrid environments

Code Comparison

Calico network policy example:

apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
  name: allow-tcp-6379
spec:
  selector: app == 'database'
  ingress:
  - action: Allow
    protocol: TCP
    destination:
      ports:
      - 6379

Weave network policy example:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-tcp-6379
spec:
  podSelector:
    matchLabels:
      app: database
  ingress:
  - ports:
    - port: 6379
      protocol: TCP

The code examples show that Calico offers more detailed network policy configuration options, while Weave uses standard Kubernetes network policies, which are simpler but less flexible.

22,159

eBPF-based Networking, Security, and Observability

Pros of Cilium

  • Advanced network policy enforcement using eBPF
  • Better performance and scalability for large clusters
  • Integrated service mesh and load balancing capabilities

Cons of Cilium

  • Steeper learning curve and more complex setup
  • Requires newer kernel versions for full functionality
  • Less mature and battle-tested compared to Weave

Code Comparison

Cilium (using Cilium CLI):

cilium install
cilium status
cilium connectivity test

Weave (using kubectl):

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
kubectl get pods -n kube-system

Both projects provide network solutions for Kubernetes, but Cilium offers more advanced features and better performance at the cost of increased complexity. Weave is simpler to set up and has been around longer, making it a more familiar choice for many users. Cilium's use of eBPF technology gives it an edge in terms of flexibility and efficiency, while Weave's simplicity and stability make it a solid choice for smaller or less demanding deployments.

9,167

flannel is a network fabric for containers, designed for Kubernetes

Pros of Flannel

  • Simpler setup and configuration process
  • Lower resource overhead, especially in large clusters
  • Better integration with Kubernetes out-of-the-box

Cons of Flannel

  • Limited network policy support compared to Weave
  • Less flexibility in network topology options
  • Fewer advanced features like encryption and multicast

Code Comparison

Flannel configuration example:

net-conf.json:
{
  "Network": "10.244.0.0/16",
  "Backend": {
    "Type": "vxlan"
  }
}

Weave configuration example:

apiVersion: v1
kind: ConfigMap
metadata:
  name: weave-net
  namespace: kube-system
data:
  network: "10.32.0.0/12"
  ipalloc-range: "10.32.0.0/12"

Both Flannel and Weave are popular networking solutions for container orchestration platforms like Kubernetes. Flannel focuses on simplicity and ease of use, making it a good choice for smaller deployments or teams new to container networking. Weave offers more advanced features and flexibility, which can be beneficial for complex network requirements or larger-scale deployments. The choice between the two often depends on specific project needs and team expertise.

5,800

Container Network Interface - networking for Linux containers

Pros of CNI

  • Standardized interface for container networking across multiple platforms
  • Broader ecosystem support with numerous plugins available
  • More flexible and extensible architecture

Cons of CNI

  • Requires more configuration and setup compared to Weave's simplicity
  • Less out-of-the-box functionality for complex networking scenarios
  • Steeper learning curve for beginners

Code Comparison

Weave configuration example:

apiVersion: v1
kind: ConfigMap
metadata:
  name: weave-net
  namespace: kube-system
data:
  network: "10.32.0.0/12"

CNI configuration example:

{
  "cniVersion": "0.4.0",
  "name": "mynet",
  "type": "bridge",
  "bridge": "cni0",
  "ipam": {
    "type": "host-local",
    "subnet": "10.22.0.0/16"
  }
}

The Weave configuration is typically simpler, while CNI offers more granular control over network settings.

3,747

Open vSwitch

Pros of Open vSwitch

  • More mature and widely adopted in enterprise environments
  • Supports a broader range of networking protocols and features
  • Better performance for large-scale deployments

Cons of Open vSwitch

  • Steeper learning curve and more complex configuration
  • Requires more system resources to operate effectively
  • Less seamless integration with container orchestration platforms

Code Comparison

Open vSwitch configuration example:

ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
ovs-vsctl add-port br0 vnet0

Weave configuration example:

weave launch
docker run --net=weave myapp

Open vSwitch offers more granular control over network configuration but requires more detailed setup. Weave provides a simpler, more container-friendly approach with less manual configuration.

Both projects aim to provide software-defined networking solutions, but Open vSwitch is more focused on traditional virtualization environments, while Weave is designed specifically for container networking. Open vSwitch offers greater flexibility and feature set at the cost of complexity, while Weave prioritizes ease of use and seamless integration with container ecosystems.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Weave Net - Weaving Containers into Applications

Integration Tests Coverage Status Go Report Card Docker Pulls

About Weaveworks

Weaveworks is the company that delivers the most productive way for developers to connect, observe and control Docker containers.

This repository contains Weave Net, the first product developed by Weaveworks, with over 8 million downloads to date. Weave Net enables you to get started with Docker clusters and portable apps in a fraction of the time required by other solutions.

Weave Net

Weave Net creates a virtual network that connects Docker containers across multiple hosts and enables their automatic discovery. With Weave Net, portable microservices-based applications consisting of multiple containers can run anywhere: on one host, multiple hosts or even across cloud providers and data centers. Applications use the network just as if the containers were all plugged into the same network switch, without having to configure port mappings, ambassadors or links.

Services provided by application containers on the Weave network can be exposed to the outside world, regardless of where they are running. Similarly, existing internal systems can be opened to accept connections from application containers irrespective of their location.

Getting help

If you have any questions about, feedback for or a problem with Weave Net:

We follow the CNCF Code of Conduct.

Your feedback is always welcome!

Further Information