diff options
author | max42 <max42@yandex-team.com> | 2023-07-29 00:02:16 +0300 |
---|---|---|
committer | max42 <max42@yandex-team.com> | 2023-07-29 00:02:16 +0300 |
commit | 73b89de71748a21e102d27b9f3ed1bf658766cb5 (patch) | |
tree | 188bbd2d622fa91cdcbb1b6d6d77fbc84a0646f5 /yt/yt_proto | |
parent | 528e321bcc2a2b67b53aeba58c3bd88305a141ee (diff) | |
download | ydb-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')
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"]; +} |