aboutsummaryrefslogtreecommitdiffstats
path: root/yt/yt_proto
diff options
context:
space:
mode:
authormax42 <max42@yandex-team.com>2023-07-29 00:02:16 +0300
committermax42 <max42@yandex-team.com>2023-07-29 00:02:16 +0300
commit73b89de71748a21e102d27b9f3ed1bf658766cb5 (patch)
tree188bbd2d622fa91cdcbb1b6d6d77fbc84a0646f5 /yt/yt_proto
parent528e321bcc2a2b67b53aeba58c3bd88305a141ee (diff)
downloadydb-73b89de71748a21e102d27b9f3ed1bf658766cb5.tar.gz
YT-19210: expose YQL shared library for YT.
After this, a new target libyqlplugin.so appears. in open-source cmake build. Diff in open-source YDB repo looks like the following: https://paste.yandex-team.ru/f302bdb4-7ef2-4362-91c7-6ca45f329264
Diffstat (limited to 'yt/yt_proto')
-rw-r--r--yt/yt_proto/CMakeLists.txt9
-rw-r--r--yt/yt_proto/yt/CMakeLists.txt10
-rw-r--r--yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt190
-rw-r--r--yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt191
-rw-r--r--yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt191
-rw-r--r--yt/yt_proto/yt/core/CMakeLists.txt17
-rw-r--r--yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt190
-rw-r--r--yt/yt_proto/yt/core/bus/proto/bus.proto13
-rw-r--r--yt/yt_proto/yt/core/crypto/proto/crypto.proto11
-rw-r--r--yt/yt_proto/yt/core/misc/proto/bloom_filter.proto10
-rw-r--r--yt/yt_proto/yt/core/misc/proto/error.proto20
-rw-r--r--yt/yt_proto/yt/core/misc/proto/guid.proto17
-rw-r--r--yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto28
-rw-r--r--yt/yt_proto/yt/core/rpc/proto/rpc.proto216
-rw-r--r--yt/yt_proto/yt/core/tracing/proto/span.proto38
-rw-r--r--yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto22
-rw-r--r--yt/yt_proto/yt/core/ya.make32
-rw-r--r--yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto30
-rw-r--r--yt/yt_proto/yt/core/ytree/proto/attributes.proto30
-rw-r--r--yt/yt_proto/yt/core/ytree/proto/ypath.proto158
-rw-r--r--yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt56
-rw-r--r--yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt57
-rw-r--r--yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt57
-rw-r--r--yt/yt_proto/yt/formats/CMakeLists.txt17
-rw-r--r--yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt56
-rw-r--r--yt/yt_proto/yt/formats/extension.proto107
-rw-r--r--yt/yt_proto/yt/formats/ya.make14
-rw-r--r--yt/yt_proto/yt/formats/yamr.proto16
28 files changed, 1803 insertions, 0 deletions
diff --git a/yt/yt_proto/CMakeLists.txt b/yt/yt_proto/CMakeLists.txt
new file mode 100644
index 0000000000..ef64c4e308
--- /dev/null
+++ b/yt/yt_proto/CMakeLists.txt
@@ -0,0 +1,9 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(yt)
diff --git a/yt/yt_proto/yt/CMakeLists.txt b/yt/yt_proto/yt/CMakeLists.txt
new file mode 100644
index 0000000000..d8f6bf9771
--- /dev/null
+++ b/yt/yt_proto/yt/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(core)
+add_subdirectory(formats)
diff --git a/yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt b/yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..f131b5c4e9
--- /dev/null
+++ b/yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,190 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-core)
+target_include_directories(yt_proto-yt-core PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_link_libraries(yt_proto-yt-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/error.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/guid.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/span.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/bus/proto/bus.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto
+)
+target_proto_addincls(yt_proto-yt-core
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-core
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt b/yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..2907cf3959
--- /dev/null
+++ b/yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,191 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-core)
+target_include_directories(yt_proto-yt-core PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_link_libraries(yt_proto-yt-core PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/error.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/guid.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/span.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/bus/proto/bus.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto
+)
+target_proto_addincls(yt_proto-yt-core
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-core
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt b/yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..2907cf3959
--- /dev/null
+++ b/yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,191 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-core)
+target_include_directories(yt_proto-yt-core PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_link_libraries(yt_proto-yt-core PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/error.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/guid.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/span.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/bus/proto/bus.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto
+)
+target_proto_addincls(yt_proto-yt-core
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-core
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt_proto/yt/core/CMakeLists.txt b/yt/yt_proto/yt/core/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/yt/yt_proto/yt/core/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt b/yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..f131b5c4e9
--- /dev/null
+++ b/yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,190 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-core)
+target_include_directories(yt_proto-yt-core PUBLIC
+ ${CMAKE_BINARY_DIR}/yt
+)
+target_link_libraries(yt_proto-yt-core PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/error.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/guid.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/span.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/bus/proto/bus.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto
+)
+target_proto_addincls(yt_proto-yt-core
+ ./yt
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/yt
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-core
+ --cpp_out=${CMAKE_BINARY_DIR}/yt
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/yt
+)
diff --git a/yt/yt_proto/yt/core/bus/proto/bus.proto b/yt/yt_proto/yt/core/bus/proto/bus.proto
new file mode 100644
index 0000000000..daf9d5f083
--- /dev/null
+++ b/yt/yt_proto/yt/core/bus/proto/bus.proto
@@ -0,0 +1,13 @@
+package NYT.NBus.NProto;
+
+import "yt_proto/yt/core/misc/proto/guid.proto";
+
+message THandshake
+{
+ required NYT.NProto.TGuid foreign_connection_id = 1;
+
+ // Only passed from client to server.
+ optional int32 multiplexing_band = 2; // EMultiplexingBand
+
+ optional int32 encryption_mode = 3; // EEncryptionMode
+}
diff --git a/yt/yt_proto/yt/core/crypto/proto/crypto.proto b/yt/yt_proto/yt/core/crypto/proto/crypto.proto
new file mode 100644
index 0000000000..3534fc93d1
--- /dev/null
+++ b/yt/yt_proto/yt/core/crypto/proto/crypto.proto
@@ -0,0 +1,11 @@
+package NYT.NCrypto.NProto;
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TMD5Hasher
+{
+ required bytes state = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto b/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto
new file mode 100644
index 0000000000..b950a6cec7
--- /dev/null
+++ b/yt/yt_proto/yt/core/misc/proto/bloom_filter.proto
@@ -0,0 +1,10 @@
+package NYT.NProto;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/misc";
+
+message TBloomFilter
+{
+ required int32 version = 1;
+ required bytes bitmap = 2;
+ required int32 hash_count = 3;
+}
diff --git a/yt/yt_proto/yt/core/misc/proto/error.proto b/yt/yt_proto/yt/core/misc/proto/error.proto
new file mode 100644
index 0000000000..2e20bc0269
--- /dev/null
+++ b/yt/yt_proto/yt/core/misc/proto/error.proto
@@ -0,0 +1,20 @@
+package NYT.NProto;
+
+option java_package = "tech.ytsaurus";
+option java_multiple_files = true;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/misc";
+
+import "yt_proto/yt/core/ytree/proto/attributes.proto";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TError
+{
+ required int32 code = 1;
+ optional string message = 2;
+ optional NYT.NYTree.NProto.TAttributeDictionary attributes = 3;
+ repeated TError inner_errors = 4;
+}
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/core/misc/proto/guid.proto b/yt/yt_proto/yt/core/misc/proto/guid.proto
new file mode 100644
index 0000000000..61f191bf24
--- /dev/null
+++ b/yt/yt_proto/yt/core/misc/proto/guid.proto
@@ -0,0 +1,17 @@
+package NYT.NProto;
+
+option java_package = "tech.ytsaurus";
+option java_multiple_files = true;
+
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/misc";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TGuid
+{
+ required fixed64 first = 1;
+ required fixed64 second = 2;
+}
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto b/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto
new file mode 100644
index 0000000000..79b4f242a3
--- /dev/null
+++ b/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.proto
@@ -0,0 +1,28 @@
+package NYT.NProto;
+
+option java_package = "tech.ytsaurus";
+option java_multiple_files = true;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/misc";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TSerializedMessageEnvelope
+{
+ optional int32 codec = 1 [default = 0];
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TExtension
+{
+ required int32 tag = 1;
+ required bytes data = 2;
+}
+
+message TExtensionSet
+{
+ repeated TExtension extensions = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/core/rpc/proto/rpc.proto b/yt/yt_proto/yt/core/rpc/proto/rpc.proto
new file mode 100644
index 0000000000..852bc3cc79
--- /dev/null
+++ b/yt/yt_proto/yt/core/rpc/proto/rpc.proto
@@ -0,0 +1,216 @@
+package NYT.NRpc.NProto;
+
+option java_package = "tech.ytsaurus.rpc";
+option java_multiple_files = true;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/rpc";
+
+
+import "yt_proto/yt/core/misc/proto/guid.proto";
+import "yt_proto/yt/core/misc/proto/error.proto";
+import "yt_proto/yt/core/tracing/proto/tracing_ext.proto";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TStreamingParameters
+{
+ optional int64 window_size = 1;
+ optional int64 read_timeout = 2;
+ optional int64 write_timeout = 3;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TRequestHeader
+{
+ optional NYT.NProto.TGuid request_id = 1;
+ required string service = 2;
+ required string method = 3;
+ optional NYT.NProto.TGuid realm_id = 8;
+
+ optional int32 protocol_version_major = 9;
+ optional int32 protocol_version_minor = 19;
+
+ optional int64 start_time = 7;
+ optional bool retry = 11;
+ optional NYT.NProto.TGuid mutation_id = 13;
+
+ optional int64 timeout = 10;
+
+ optional string user = 12;
+ optional string user_tag = 25;
+
+ optional int32 tos_level = 14;
+
+ optional int32 request_format = 15; // EMessageFormat
+ optional int32 response_format = 16; // EMessageFormat
+
+ optional bool uncancelable = 17;
+
+ optional string user_agent = 18;
+
+ optional int64 logging_suppression_timeout = 20;
+ optional bool disable_logging_suppression_if_request_failed = 21;
+
+ // COMPAT(kiseloyvp): these are missing when legacy mode is used
+ optional int32 request_codec = 23; // ECodec
+ optional int32 response_codec = 24; // ECodec
+
+ optional TStreamingParameters server_attachments_streaming_parameters = 33;
+
+ optional bytes request_format_options = 34; // TYsonString
+ optional bytes response_format_options = 35; // TYsonString
+
+ repeated int32 declared_client_feature_ids = 36;
+ repeated int32 required_server_feature_ids = 37;
+
+ optional int64 logical_request_weight = 38;
+
+ reserved 32;
+
+ /*
+ * Extensions:
+ * transaction_id 100
+ * suppress_access_tracking 103
+ * ypath_header_ext 104
+ * caching_header_ext 105
+ * tracing_ext 106
+ * suppress_modification_tracking 108
+ * prerequisites_ext 109
+ * credentials_ext 110
+ * balancing_ext 111
+ * multicell_sync_ext 112
+ * suppress_expiration_timeout_renewal 113
+ * workload_descriptor 114
+ * ssl_credentials_ext 120
+ * req_execute_ext 200
+ * req_multiread_ext 201
+ */
+
+ extensions 100 to max;
+
+ extend NRpc.NProto.TRequestHeader
+ {
+ optional NYT.NTracing.NProto.TTracingExt tracing_ext = 106;
+ }
+}
+
+message TBalancingExt
+{
+ extend NRpc.NProto.TRequestHeader
+ {
+ optional TBalancingExt balancing_ext = 111;
+ }
+
+ optional bool enable_stickiness = 1;
+ optional int32 sticky_group_size = 2 [default = 1];
+ optional bool enable_client_stickiness = 3;
+}
+
+message TCredentialsExt
+{
+ extend NRpc.NProto.TRequestHeader
+ {
+ optional TCredentialsExt credentials_ext = 110;
+ }
+
+ reserved 1;
+ optional string token = 2;
+ optional string session_id = 4;
+ optional string ssl_session_id = 5;
+ optional string user_ticket = 6;
+ optional string service_ticket = 7;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TResponseHeader
+{
+ optional NYT.NProto.TGuid request_id = 1;
+
+ // If omitted then OK is assumed.
+ optional NYT.NProto.TError error = 2;
+
+ optional int32 format = 3; // EMessageFormat
+
+ // COMPAT(kiseloyvp): this is missing when legacy mode is used
+ optional int32 codec = 6; // ECodec
+
+ reserved 5;
+ extensions 100 to max;
+}
+
+message THedgingExt
+{
+ extend NRpc.NProto.TResponseHeader
+ {
+ optional THedgingExt hedging_ext = 100;
+ }
+
+ optional bool backup_responded = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TRequestCancelationHeader
+{
+ required NYT.NProto.TGuid request_id = 1;
+ required string service = 2;
+ required string method = 3;
+ optional NYT.NProto.TGuid realm_id = 4;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TStreamingPayloadHeader
+{
+ required NYT.NProto.TGuid request_id = 1;
+ required string service = 2;
+ required string method = 3;
+ optional NYT.NProto.TGuid realm_id = 4;
+ required int32 sequence_number = 5;
+ optional int32 codec = 6; // ECodec
+
+ reserved 7;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TStreamingFeedbackHeader
+{
+ required NYT.NProto.TGuid request_id = 1;
+ required string service = 2;
+ required string method = 3;
+ optional NYT.NProto.TGuid realm_id = 4;
+ required int64 read_position = 5;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqDiscover
+{
+ optional int64 reply_delay = 1;
+
+ extensions 100 to max;
+}
+
+message TRspDiscover
+{
+ required bool up = 1;
+ repeated string suggested_addresses = 2;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+enum EWriterFeedback
+{
+ WF_HANDSHAKE = 0;
+ WF_SUCCESS = 1;
+}
+
+message TWriterFeedback
+{
+ required EWriterFeedback feedback = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/core/tracing/proto/span.proto b/yt/yt_proto/yt/core/tracing/proto/span.proto
new file mode 100644
index 0000000000..9d08cc47a6
--- /dev/null
+++ b/yt/yt_proto/yt/core/tracing/proto/span.proto
@@ -0,0 +1,38 @@
+package NYT.NTracing.NProto;
+
+import "yt_proto/yt/core/misc/proto/guid.proto";
+
+option java_package = "tech.ytsaurus.tracing";
+option java_multiple_files = true;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/tracing";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TTag
+{
+ required string key = 1;
+ required string value = 2;
+}
+
+message TSpan
+{
+ required NYT.NProto.TGuid trace_id = 1;
+ required fixed64 span_id = 2;
+ optional fixed64 parent_span_id = 3;
+ optional fixed64 follows_from_span_id = 4;
+ required string name = 5;
+
+ required fixed64 start_time = 6;
+ required fixed64 duration = 7;
+
+ repeated TTag tags = 8;
+}
+
+message TSpanBatch
+{
+ repeated TSpan spans = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
diff --git a/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto b/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto
new file mode 100644
index 0000000000..8c2740493f
--- /dev/null
+++ b/yt/yt_proto/yt/core/tracing/proto/tracing_ext.proto
@@ -0,0 +1,22 @@
+package NYT.NTracing.NProto;
+
+import "yt_proto/yt/core/misc/proto/guid.proto";
+
+option java_package = "tech.ytsaurus.tracing";
+option java_multiple_files = true;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/tracing";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TTracingExt
+{
+ reserved 1, 2, 3;
+
+ optional NYT.NProto.TGuid trace_id = 4;
+ optional fixed64 span_id = 5;
+ optional bool sampled = 6;
+ optional bool debug = 7;
+ optional string target_endpoint = 9;
+ optional bytes baggage = 8;
+}
diff --git a/yt/yt_proto/yt/core/ya.make b/yt/yt_proto/yt/core/ya.make
new file mode 100644
index 0000000000..01de274fe4
--- /dev/null
+++ b/yt/yt_proto/yt/core/ya.make
@@ -0,0 +1,32 @@
+PROTO_LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/yt/gradle.inc)
+
+SRCS(
+ crypto/proto/crypto.proto
+
+ misc/proto/bloom_filter.proto
+ misc/proto/error.proto
+ misc/proto/guid.proto
+ misc/proto/protobuf_helpers.proto
+
+ tracing/proto/span.proto
+ tracing/proto/tracing_ext.proto
+
+ bus/proto/bus.proto
+
+ rpc/proto/rpc.proto
+
+ yson/proto/protobuf_interop.proto
+
+ ytree/proto/attributes.proto
+ ytree/proto/ypath.proto
+)
+
+PROTO_NAMESPACE(yt)
+
+PY_NAMESPACE(yt_proto.yt.core)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto b/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto
new file mode 100644
index 0000000000..7aca26d4c9
--- /dev/null
+++ b/yt/yt_proto/yt/core/yson/proto/protobuf_interop.proto
@@ -0,0 +1,30 @@
+package NYT.NYson.NProto;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/yson";
+
+
+import "google/protobuf/descriptor.proto";
+
+extend google.protobuf.FieldOptions
+{
+ optional string field_name = 3000;
+ repeated string field_name_alias = 3003;
+ optional bool yson_string = 3001;
+ optional bool yson_map = 3002;
+ optional bool required = 3004;
+}
+
+extend google.protobuf.EnumValueOptions
+{
+ optional string enum_value_name = 3001;
+}
+
+extend google.protobuf.MessageOptions
+{
+ optional bool attribute_dictionary = 3000;
+}
+
+extend google.protobuf.FileOptions
+{
+ optional bool derive_underscore_case_names = 3000;
+}
diff --git a/yt/yt_proto/yt/core/ytree/proto/attributes.proto b/yt/yt_proto/yt/core/ytree/proto/attributes.proto
new file mode 100644
index 0000000000..cb1b90451e
--- /dev/null
+++ b/yt/yt_proto/yt/core/ytree/proto/attributes.proto
@@ -0,0 +1,30 @@
+package NYT.NYTree.NProto;
+
+import "yt_proto/yt/core/yson/proto/protobuf_interop.proto";
+
+option java_package = "tech.ytsaurus.ytree";
+option java_multiple_files = true;
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/ytree";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TAttribute
+{
+ required string key = 1;
+ required bytes value = 2;
+}
+
+message TAttributeDictionary
+{
+ option (NYT.NYson.NProto.attribute_dictionary) = true;
+ repeated TAttribute attributes = 1;
+}
+
+message TAttributeFilter
+{
+ repeated string keys = 1;
+ repeated string paths = 2;
+}
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/core/ytree/proto/ypath.proto b/yt/yt_proto/yt/core/ytree/proto/ypath.proto
new file mode 100644
index 0000000000..5fb905d41e
--- /dev/null
+++ b/yt/yt_proto/yt/core/ytree/proto/ypath.proto
@@ -0,0 +1,158 @@
+package NYT.NYTree.NProto;
+
+import "yt_proto/yt/core/rpc/proto/rpc.proto";
+import "yt_proto/yt/core/ytree/proto/attributes.proto";
+
+option go_package = "a.yandex-team.ru/yt/go/proto/core/ytree";
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TYPathHeaderExt
+{
+ extend NRpc.NProto.TRequestHeader
+ {
+ optional TYPathHeaderExt ypath_header_ext = 104;
+ }
+
+ //! True if the request changes the persistent state (e.g. Set, Remove, Create etc).
+ optional bool mutating = 1;
+
+ //! The primary object targeted by this request.
+ required string target_path = 2;
+
+ //! A copy of target_path in case of path rewrite.
+ optional string original_target_path = 3;
+
+ //! In case of multivalent methods (e.g. Copy) contains the paths of other
+ //! involved objects.
+ repeated string additional_paths = 4;
+
+ //! A copy of additional_paths in case of path rewrite.
+ repeated string original_additional_paths = 5;
+
+ reserved 6;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TCachingHeaderExt
+{
+ extend NRpc.NProto.TRequestHeader
+ {
+ optional TCachingHeaderExt caching_header_ext = 105;
+ }
+
+ required int32 expire_after_successful_update_time = 1;
+ required int32 expire_after_failed_update_time = 2;
+ optional int64 refresh_revision = 3;
+ optional bool disable_second_level_cache = 4;
+ optional bool disable_per_user_cache = 5;
+ optional int64 success_staleness_bound = 6;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqGet
+{
+ // TODO(max42): rename attributes -> attribute_filter
+ optional TAttributeFilter attributes = 1;
+ optional int64 limit = 2;
+ optional bool ignore_opaque = 3;
+ optional NYT.NYTree.NProto.TAttributeDictionary options = 4;
+}
+
+message TRspGet
+{
+ required bytes value = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqGetKey
+{ }
+
+message TRspGetKey
+{
+ required bytes value = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqSet
+{
+ required bytes value = 1;
+ optional bool recursive = 2 [default = false];
+ optional bool force = 3 [default = false];
+}
+
+message TRspSet
+{ }
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqRemove
+{
+ optional bool recursive = 1 [default = true];
+ optional bool force = 2 [default = false];
+}
+
+message TRspRemove
+{ }
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqList
+{
+ optional TAttributeFilter attributes = 1;
+ optional int64 limit = 2;
+}
+
+message TRspList
+{
+ required bytes value = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqExists
+{ }
+
+message TRspExists
+{
+ required bool value = 1;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+// COMPAT(gritukan) This is an alias for TReqMultisetAttributes.
+message TReqMultiset
+{
+ message TSubrequest
+ {
+ required string key = 1;
+ required bytes value = 2;
+ }
+
+ repeated TSubrequest subrequests = 1;
+}
+
+message TRspMultiset
+{ }
+
+////////////////////////////////////////////////////////////////////////////////
+
+message TReqMultisetAttributes
+{
+ message TSubrequest
+ {
+ required string attribute = 1;
+ required bytes value = 2;
+ }
+
+ repeated TSubrequest subrequests = 1;
+}
+
+message TRspMultisetAttributes
+{ }
+
+////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt b/yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..031fc7a562
--- /dev/null
+++ b/yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-formats)
+target_link_libraries(yt_proto-yt-formats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-formats PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto
+)
+target_proto_addincls(yt_proto-yt-formats
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-formats
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt b/yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..b562859693
--- /dev/null
+++ b/yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-formats)
+target_link_libraries(yt_proto-yt-formats PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-formats PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto
+)
+target_proto_addincls(yt_proto-yt-formats
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-formats
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt b/yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..b562859693
--- /dev/null
+++ b/yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-formats)
+target_link_libraries(yt_proto-yt-formats PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-formats PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto
+)
+target_proto_addincls(yt_proto-yt-formats
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-formats
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/yt/yt_proto/yt/formats/CMakeLists.txt b/yt/yt_proto/yt/formats/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/yt/yt_proto/yt/formats/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt b/yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..031fc7a562
--- /dev/null
+++ b/yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(yt_proto-yt-formats)
+target_link_libraries(yt_proto-yt-formats PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(yt_proto-yt-formats PRIVATE
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto
+ ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto
+)
+target_proto_addincls(yt_proto-yt-formats
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(yt_proto-yt-formats
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/yt/yt_proto/yt/formats/extension.proto b/yt/yt_proto/yt/formats/extension.proto
new file mode 100644
index 0000000000..80a529ba95
--- /dev/null
+++ b/yt/yt_proto/yt/formats/extension.proto
@@ -0,0 +1,107 @@
+import "google/protobuf/descriptor.proto";
+
+package NYT;
+
+option go_package = "a.yandex-team.ru/yt/yt_proto/yt/formats";
+
+message EWrapperFieldFlag
+{
+ enum Enum
+ {
+ ANY = 0;
+ OTHER_COLUMNS = 1;
+ ENUM_INT = 2;
+ ENUM_STRING = 3;
+
+ // Fields marked by this flag may correspond to composite types in table,
+ // e.g. message to Struct, repeated to List etc.
+ SERIALIZATION_YT = 4;
+
+ // Message fields marked by this flag correspond to String column in table
+ // (containing serialized representation of the field).
+ SERIALIZATION_PROTOBUF = 5;
+
+ // repeated field corresponds to List<T> type.
+ REQUIRED_LIST = 6;
+
+ // repeated field corresponds to Optional<List<T>> type.
+ OPTIONAL_LIST = 7;
+
+ // map<Key, Value> corresponds to List<Struct<key: Key, value: String>>, i.e.
+ // the type for Value is inferred as if it had SERIALIZATION_PROTOBUF flag.
+ MAP_AS_LIST_OF_STRUCTS_LEGACY = 8;
+
+ // map<Key, Value> corresponds to List<Struct<key: Key, value: Inferred(Value)>>,
+ // where Inferred(Value) is the type inferred as if Value had SERIALIZATION_YT flag,
+ // e.g. Struct for message type.
+ MAP_AS_LIST_OF_STRUCTS = 9;
+
+ // map<Key, Value> corresponds to Dict<Key, Inferred(Value)>.
+ // (the option is experimental, see YT-13314)
+ MAP_AS_DICT = 10;
+
+ // map<Key, Value> corresponds to Optional<Dict<Key, Inferred(Value)>>.
+ // (the option is experimental, see YT-13314)
+ MAP_AS_OPTIONAL_DICT = 11;
+
+ // ignore this field but unfold subfields instead while (de)serializing
+ EMBEDDED = 12;
+
+ // Optional enum fields marked by this flag would not be filled if they hold
+ // a constant, that is missing in protobuf schema. (good for forward compatibility)
+ ENUM_SKIP_UNKNOWN_VALUES = 13;
+
+ // Enum fields marked by this flag could only be filled with constants
+ // that are present in the protobuf schema. (default behaviour)
+ ENUM_CHECK_VALUES = 14;
+ }
+}
+
+message EWrapperMessageFlag
+{
+ enum Enum
+ {
+ DEPRECATED_SORT_FIELDS_AS_IN_PROTO_FILE = 0;
+ SORT_FIELDS_BY_FIELD_NUMBER = 1;
+ }
+}
+
+message EWrapperOneofFlag
+{
+ enum Enum
+ {
+ // Each field inside oneof group corresponds to a regular field of the
+ // parent message.
+ SEPARATE_FIELDS = 12;
+
+ // Oneof group corresponds to Variant over Struct.
+ VARIANT = 13;
+ }
+}
+
+extend google.protobuf.FileOptions
+{
+ repeated EWrapperOneofFlag.Enum file_default_oneof_flags = 56788;
+ repeated EWrapperFieldFlag.Enum file_default_field_flags = 56789;
+ repeated EWrapperMessageFlag.Enum file_default_message_flags = 56790;
+}
+
+extend google.protobuf.FieldOptions
+{
+ repeated EWrapperFieldFlag.Enum flags = 56788;
+ optional string column_name = 56789;
+ optional string key_column_name = 56790;
+}
+
+extend google.protobuf.MessageOptions
+{
+ repeated EWrapperOneofFlag.Enum default_oneof_flags = 56788;
+ repeated EWrapperFieldFlag.Enum default_field_flags = 56789;
+ repeated EWrapperMessageFlag.Enum message_flags = 56790;
+}
+
+extend google.protobuf.OneofOptions
+{
+ repeated EWrapperOneofFlag.Enum oneof_flags = 56788;
+ optional string variant_field_name = 56789;
+}
diff --git a/yt/yt_proto/yt/formats/ya.make b/yt/yt_proto/yt/formats/ya.make
new file mode 100644
index 0000000000..b73e73ba1c
--- /dev/null
+++ b/yt/yt_proto/yt/formats/ya.make
@@ -0,0 +1,14 @@
+PROTO_LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/yt/gradle.inc)
+
+IF (NOT PY_PROTOS_FOR)
+ INCLUDE_TAGS(GO_PROTO)
+ENDIF()
+
+SRCS(
+ extension.proto
+ yamr.proto
+)
+
+END()
diff --git a/yt/yt_proto/yt/formats/yamr.proto b/yt/yt_proto/yt/formats/yamr.proto
new file mode 100644
index 0000000000..457de1f9fc
--- /dev/null
+++ b/yt/yt_proto/yt/formats/yamr.proto
@@ -0,0 +1,16 @@
+import "yt/yt_proto/yt/formats/extension.proto";
+
+package NYT;
+
+option go_package = "a.yandex-team.ru/yt/yt_proto/yt/formats";
+
+message TYamr {
+ optional string Key = 1 [(NYT.key_column_name) = "key"];
+ optional string Subkey = 2 [(NYT.key_column_name) = "subkey"];
+ optional string Value = 3 [(NYT.column_name) = "value"];
+}
+
+message TYamrNoSubkey {
+ optional string Key = 1 [(NYT.key_column_name) = "key"];
+ optional string Value = 2 [(NYT.column_name) = "value"];
+}