Git API 바인딩이 가장 좋은 언어는 무엇입니까?
나는 git과 무거운 관련이 있는 애플리케이션을 만들고 있습니다.
사용 가능한 언어 바인딩이 있으며, 사용 가능한 경우 가장 포괄적인 바인딩은 무엇입니까?
그것은 C 베어 메탈에 가는 것을 의미합니까?
아니면 perl / python / php / C#에 전체 바인딩 세트가 있습니까?
감사해요.
대니얼.
일부 프로그래밍 언어 내에서 Git를 사용하는 것과 관련하여 세 가지 다른 접근 방식이 있습니다.
다른 언어로 Git의 재구현.이것이 바로 다음 프로젝트가 수행하는 작업입니다.
- Java에서 Git의 재구현인 JGit(EGit, Eclipse Git 플러그인 및 Gerrit Code Review에서 사용),
- Grit는 git 저장소에서 객체 지향 방식으로 정보를 추출하기 위한 Ruby 라이브러리이며, 여기에는 부분 네이티브 Ruby 구현이 포함됩니다.예를 들어 GitHub에서 사용합니다.
- GitSharp는 .NET 및 Mono용 Git의 C#을 재조합한 것으로 JGitwrt. 기능을 따르고 있습니다.
- Git 파일 형식 및 프로토콜의 순수 파이썬 읽기-쓰기 구현인 Dulwich.
- Git::PurePerl은 Git 저장소에 대한 순수 Perl 인터페이스입니다(처음에는 주로 Grit 기반이었습니다).
- Glip은 "PHP의 git 라이브러리" - 순수한 PHP 구현입니다.작성자가 eWiki용으로 사용합니다.
- Monodevelop에서 사용하는 JGit의 .NET 포트
재구현의 문제는 그들이 항상 전체 기능을 구현하는 것은 아니며, 때로는 그것을 잘못 구현한다는 것입니다.반면에, 그들은 네이티브이고, 좋은 성능을 구현합니다. 그들은 Git의 C(원래) 구현인 GPLv2와는 다르게 라이센스가 부여될 수 있습니다.Git 명령을 호출하고 랩하는 래퍼는 대상 언어에 적합한 어떤 종류의 결과를 가져옵니다.
- git와 함께 배포된 Git.pm 모듈(일부 명령에 사용됨), Git:포장지 및 깃:Perl용 저장소 래핑 git 명령입니다.
- JavaGit는 호출 git 명령을 통해 git 저장소에 대한 액세스를 제공하는 Java API입니다.
- GitPython은 Git 실행 파일을 호출하고 출력을 구문 분석하여 Git 저장소와 상호 작용하는 데 사용되는 Python 라이브러리입니다.
- hs-libgit는 git의 Haskell 래퍼입니다.
래퍼의 문제는 속도가 느릴 수 있고(포킹 깃 프로세스가 필요함), 작동하려면 깃을 설치해야 한다는 것입니다.또한 Git 자체는 최종 사용자(포슬레인)를 위한 상위 레벨 명령 외에도 스크립팅(플럼핑)을 위한 하위 레벨 명령을 제공하기 때문에 스크립트 작성(예: 셸 스크립트 사용)이 매우 용이합니다.
마지막으로 libgit2에 대한 바인딩이 있으며, 이는 견고한 API(Google Summer of Code 2010 프로젝트)로 다시 진입 가능한 라이브러리가 되는 것을 의미합니다.
- libgit2 자체는 휴대용 순수 C 구현입니다.
- 견고 - 루비 바인딩.
- php-git - PHP 바인딩.
- luagit2 - Lua 바인딩.
- GitForDelphi - Delphi 바인딩.
- libgit2sharp - .NET 바인딩입니다.
- pygit2 - 파이썬 바인딩입니다.
- Geef는 libgit2 라이브러리 함수의 일부를 Erlang에 공개하는 간단한 Erlang NIF입니다.Monodevelop은 JGit에 .NET 포트를 사용합니다.
Libgit2는 상당히 새로운 프로젝트입니다. 진행 중인 작업이기 때문에 모든 것이 현재 구현되는 것은 아닙니다.자세한 내용은 libgit2 홈페이지를 참조하십시오.
이 모든 정보는 Git Wiki의 InterfacesFrontendsAndTools 페이지에서 확인할 수 있습니다.
API를 사용하지 않을 수도 있습니다.git는 다양한 추상화 수준의 유틸리티 모음으로 구성됩니다.이러한 유틸리티를 호출하여 출력을 처리함으로써 작동하는 포괄적인 유틸리티 세트를 구축할 수 있어야 합니다.대부분의 고급 git 명령어는 셸 스크립트 또는 펄 스크립트이며, 따라서 git 소스 자체에 예제로 사용할 많은 예제가 있습니다.
시작할 수 있는 좋은 예:
magit : emacslisp로 작성된 emacs에 대한 git 인터페이스
git gui : tcl, git와 함께 제공됩니다.
gitk : tcl, git도 함께 제공됩니다.
gitview : python, 기여 디렉터리에 git와 함께 제공됩니다.
tig : C, git에 대한 텍스트 모드 기록 브라우저.
당신이 무엇을 원하느냐에 따라, 당신은 C/C#에 가장 편안해 보입니다.Git는 C로 작성되어 있으므로 속도를 원한다면 그렇게 해야 할 것입니다.그러나 코드 명확성과 GitSharp 작성의 용이성을 원한다면 아마도 더 나은 옵션일 것입니다.
그게 최선인지는 모르겠지만 .net에는 GitSharp가 있습니다.
언급URL : https://stackoverflow.com/questions/4034962/which-language-has-the-best-git-api-bindings
'programing' 카테고리의 다른 글
과부하 특성 라라벨 MongoDB의 간접 수정 (0) | 2023.06.21 |
---|---|
파일 I/O 속도 향상: mmap() vs read() (0) | 2023.06.21 |
HTTP 모듈 이벤트 실행 순서? (0) | 2023.06.11 |
쉼표로 숫자 형식을 지정하는 오라클 SQL 쿼리 (0) | 2023.06.11 |
Docker Wordpress tar: 소유권을 uid 33, gid 33으로 변경할 수 없습니다. 작업이 허용되지 않습니다. (0) | 2023.06.11 |