r14dd/patent
요약
개발 도구 `patent`은 패키지 레지스트리, GitHub, Hacker News 등 19개 소스에서 의미적 유사성을 기반으로 코드를 검색합니다. 이는 특허 검색과 유사하며, 개발자가 아이디어를 구현하기 전 선행 기술을 광범위하게 파악하는 데 도움을 줍니다. 검색 결과는 Open, Crowded, Saturated로 요약되며, 사용자는 Ollama나 GitHub 토큰 등을 활용하여 기능을 확장할 수 있습니다.
핵심 포인트
- 19개 소스에서 의미적 유사성으로 코드 검색 가능
- Open/Crowded/Saturated로 선행 기술 상태 파악 용이
- Ollama 또는 GitHub Token을 이용한 기능 확장 지원
- 최신 glibc 버전(2.38+) 및 툴체인 환경 요구됨
patent은 일반적인 영어 개발 도구 아이디어를 받아 패키지 레지스트리(crates.io, npm, PyPI, Homebrew, Packagist, Hex 등)와 GitHub, Hacker News를 포함한 19개 소스에서 검색합니다. 결과는 의미적 유사성(semantic similarity)에 따라 순위가 매겨지고 Open, Crowded, 또는 Saturated로 요약됩니다.
특허 검색과 같지만, 코드를 위한 것입니다. 선행 기술(prior art)을 찾아내지만, 결코 부재를 인증하지는 않습니다.
개발 도구를 만들기 전에, patent은
그것이 이미 존재하는지 확인합니다. 하나의 쿼리가 수동으로 각 소스를 검색하는 대신, 패키지 레지스트리와 GitHub, Hacker News를 포함한 19개 소스에 걸쳐 한 번에 퍼집니다. 일치 항목은 키워드 매치가 아닌 의미적 유사성(semantic similarity)에 따라 로컬에서 순위가 매겨지므로, 비슷하지만 단어는 다르게 표현된 선행 기술도 나타나며, 판정은 실제로 발견된 것에 한정됩니다. 즉, 환각적인
무언가가 존재한다는 것을 증명할 수는 있지만, 무언가가 존재하지 않는다는 것은 결코 증명할 수 없습니다. 단지 일부 소스를 검색했을 뿐입니다. 모든 판정은 "검색된 소스 내에서 발견됨"으로 범위가 한정되며, 확인된 소스 목록이 항상 표시되고, 실패한 선택된 소스는 "도달하지 않음(not reached)"으로 표시됩니다. 깨끗한 Open 결과는 확신하기 전에 계속 찾아보라는 의미이지, 녹색 신호등을 의미하는 것은 아닙니다.
cargo install patent
미리 빌드된 바이너리는 릴리스 페이지에서 확인할 수 있습니다.
Ollama (선택 사항)가 LLM 판정을 구동합니다. ollama.com에서 설치한 후 ollama pull qwen3.5를 실행하세요.
. --fast`를 사용하면 이 과정을 완전히 건너뛸 수 있습니다.
GitHub 토큰 (선택 사항) — GITHUB_TOKEN을 설정하여 검색 속도 제한(rate limit)을 10회에서 분당 30회로 높일 수 있습니다.
Linux 빌드 의존성 — cargo install 전에 필요합니다:
-
Fedora / RHEL:
sudo dnf install openssl-devel gcc-c++ -
Ubuntu / Debian:
sudo apt install libssl-dev g++
glibc 2.38+ — 미리 빌드된 바이너리나 소스에서 cargo install을 할 때 모두 glibc 2.38 이상이 필요합니다 (Ubuntu 22.10+, Debian 13+, Fedora 38+). 로컬 의미론적 검색(semantic search)에 사용되는 번들 ONNX Runtime도 이에 의존합니다. Ubuntu 22.04 (glibc 2.35)와 같은 구형 배포판에서는 호스트가 아닌 더 최신 툴체인 — 예: debian:13 또는 ubuntu:24.04 컨테이너 내부에서 빌드해야 합니다 (#37).
`patent
설정은 또한 플랫폼의 설정 디렉터리에 있는 config.toml에 저장될 수 있습니다:
Linux: ~/.config/patent/config.toml
macOS: ~/Library/Application Support/patent/config.toml
Windows: %APPDATA%\patent\config.toml
model = "gpt-4o-mini"
api_base = "https://api.openai.com/v1"
api_key = "sk-..."
우선순위: CLI 플래그 > 환경 변수 > 설정 파일 > 내장 기본값.
개인 정보 보호: --api-base를 사용하면 검색 쿼리가 해당 원격 서버로 전송되어 판결(verdict)이 생성됩니다. 기본 로컬 Ollama 백엔드 — 그리고 LLM을 완전히 건너뛰는 --fast 옵션은 모든 것을 장치 내에 유지합니다.
patent은 판결에서 파생된 상태 코드로 종료되므로, 스크립트와 CI(지속적 통합)에서 이를 제어할 수 있습니다:
| 코드 | 의미 |
|---|---|
0 | 열림 (Open) |
1 | 혼잡함 (Crowded) |
2 | 포화됨 (Saturated) |
(사용 오류 및 도달 불가능한 백엔드도 0이 아닌 코드로 종료됩니다.)
patent은 또한 공개된 라이브러리 크레이트(library crate)이며, 엔진은 재사용 가능합니다. docs.rs/patent을 참조하세요: sources::search_all는 레지스트리로 분산되고, rank::rank_async는 의미적 유사성으로 일치 항목의 순위를 매기며, verdict::assess는 모든 LLM 백엔드에 걸쳐 무결성 범위가 지정된 판결을 생성합니다.
| 키 | 동작 |
|---|---|
↑ / k | 위로 스크롤 (Scroll up) |
↓ / j | 아래로 스크롤 (Scroll down) |
g / Home | 맨 위로 이동 (Jump to top) |
G / End | 맨 아래로 이동 (Jump to bottom) |
/ | 일치 항목 필터링 (Filter matches) |
s | 순환 정렬 (Cycle sort) (유사성 / 인기 / 이름) |
m | 더 보기 / 덜 보기 (Show more / show less) |
Enter | 일치 항목 세부 정보 표시 (설명, 인기, 최종 업데이트, URL) |
o | 선택한 URL을 브라우저에서 열기 (Open selected URL in browser) |
y | 선택한 URL을 클립보드에 복사 (Copy selected URL to clipboard) |
n | 새 검색 (대화형 모드) (New search (interactive mode)) |
? | 도움말 오버레이 (Help overlay) |
q | 종료 (Quit) |
| 마커 | 의미 |
|---|---|
⚑ | 2년 이상 업데이트 없음 — 날짜가 실제로 알려진 경우에만 표시되므로, 부재는 신선도 주장이 아닙니다 |
마우스도 작동합니다 — 휠로 스크롤하고 클릭하여 선택하세요.
patent --completions bash >> ~/.bashrc # Bash
patent --completions zsh >> ~/.zshrc # Zsh
patent --completions fish > ~/.config/fish/completions/patent.fish
기여는 환영합니다! 설정 및 워크플로우에 대해서는 CONTRIBUTING.md를 참고하세요. 'good first issue'와 'help wanted' 레이블이 좋은 시작점이 될 것입니다.
cargo test
cargo fmt --all --check
cargo clippy --all-targets -- -D warnings
위에 포함된 데모 GIF는 vhs: `vhs showcase.tape`로 생성되었습니다.
.
MIT 또는 Apache-2.0 중 선택하여 라이선스합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기