diff --git a/default.nix b/default.nix
index 0119eec5c75196ed184df7795db32548422986e1..afde0f03cc59c4a0e69d67990d86c7a756d19591 100644
--- a/default.nix
+++ b/default.nix
@@ -5,6 +5,7 @@
 }:
 
 let self = rec {
+  python3 = pkgs.python3;
   pythonPackages = pkgs.python3Packages;
   simgrid = pkgs.simgrid;
   protocol-cpp = pkgs.stdenv.mkDerivation {
@@ -23,6 +24,22 @@ let self = rec {
       ninja
     ];
   };
+  protocol-python = pkgs.stdenv.mkDerivation {
+    pname = "protocol-python";
+    version = "local";
+    src = pkgs.lib.sourceByRegex ./protocol [
+      "hello\.proto"
+    ];
+    propagatedBuildInputs = [
+      pkgs.protobuf
+      pythonPackages.protobuf
+    ];
+    phases = [ "unpackPhase" "buildPhase" ];
+    buildPhase = ''
+      mkdir -p $out/lib/python${pkgs.lib.versions.majorMinor python3.version}/site-packages/protocol
+      protoc --python_out $out/lib/python${pkgs.lib.versions.majorMinor python3.version}/site-packages/protocol hello.proto
+    '';
+  };
 
 };
 in