Protobuf 호환성 검사기
.proto 파일의 두 버전을 비교해 wire 형식 또는 JSON으로 이미 기록된 메시지에 영향을 주는 변경을 찾으세요. 삭제된 번호, 유형 변경, 필드 이름 변경, enum 변경을 각각 설명합니다.
각 최대 1,000,000자인 .proto 파일 두 개를 받습니다. 토큰은 최대 200,000개, 메시지와 enum은 각 2,000개, 메시지당 필드는 10,000개, 메시지 중첩은 32단계까지 허용됩니다. 비교는 브라우저의 백그라운드 워커에서 실행됩니다. JSON 보고서와 결과 목록 CSV를 다운로드할 수 있습니다. 기존 데이터가 기록된 버전입니다. 변경된 파일은 New schema에 넣으세요. 최대 1,000,000자까지 입력할 수 있습니다. 실행하기 전에 설정을 검토하세요.
내 결과
Protobuf 호환성 검사기
- 주 입력란에 이전 .proto 파일을 붙여 넣으세요.
- New schema 필드에 새 버전을 붙여 넣으세요.
- 검사를 실행한 다음 가장 심각한 항목부터 결과를 확인하세요.
- JSON 보고서 또는 CSV 목록 다운로드
알아두세요
각 최대 1,000,000자인 .proto 파일 두 개를 받습니다. 토큰은 최대 200,000개, 메시지와 enum은 각 2,000개, 메시지당 필드는 10,000개, 메시지 중첩은 32단계까지 허용됩니다. 비교는 브라우저의 백그라운드 워커에서 실행됩니다. JSON 보고서와 결과 목록 CSV를 다운로드할 수 있습니다.
심각도
호환성을 깨는 변경은 이전 프로그램과 새 프로그램이 바이너리 메시지를 잘못 읽게 할 수 있습니다. 예를 들면 번호를 예약하지 않고 필드를 삭제하거나, 예약 범위의 번호를 재사용하거나, wire 인코딩이 다른 유형으로 바꾸거나, 단일과 반복 간에 변경하거나, 메시지 또는 enum을 삭제하거나, enum 값 번호를 다시 지정하는 경우입니다. JSON 호환성을 깨는 변경은 바이너리 데이터는 계속 작동하지만 필드나 enum 값 이름 변경처럼 JSON 또는 텍스트 형식이 바뀌는 경우입니다. 경고는 int32를 int64로 바꾸거나 필드를 oneof 안팎으로 이동하는 것처럼 wire에서는 작동하지만 값을 자르거나 다르게 해석할 수 있는 변경을 나타냅니다.
비교 방식
protobuf 언어 가이드의 메시지 유형 업데이트 규칙에 따라 메시지와 enum은 패키지를 제외한 이름으로, 필드는 번호로 매칭합니다. 다른 메시지 안에 중첩된 메시지와 enum도 비교합니다.
지원하지 않는 항목
파서는 메시지, enum, oneof, map, 중첩 유형, 예약 번호와 이름, 필드 옵션이 있는 proto2 및 proto3 파일을 읽습니다. import는 나열되지만 해석하지 않으므로 다른 파일의 유형은 이름으로만 비교합니다. edition, group, extension은 거부됩니다. service는 건너뜁니다.