
Reticulum v1.3.9
암호 기반 네트워킹 스택으로, LoRa, 패킷 라디오, WiFi 및 그 사이의 모든 것을 사용하여 중단 불가능한 네트워크를 구축합니다.
Reticulum Network Stack 


이 저장소는 공개 미러입니다. 모든 개발은 다른 곳에서 이루어지고 있습니다.
이 시스템의 기반 철학과 목표를 이해하려면 Reticulum의 선을 읽어보세요.
Reticulum은 기성 하드웨어로 로컬 및 광역 네트워크를 구축하기 위한 암호화 기반 네트워킹 스택입니다. 매우 높은 지연 시간과 극도로 낮은 대역폭에서도 작동할 수 있습니다. Reticulum을 사용하면 기성 도구로 광역 네트워크를 구축할 수 있으며, 종단 간 암호화 및 연결성, 개시자 익명성, 자동 구성되는 암호학적으로 지원되는 다중 홉 전송, 효율적인 주소 지정, 위조 불가능한 전송 확인 등을 제공합니다.
Reticulum의 비전은 누구나 자신의 네트워크 운영자가 될 수 있도록 하고, 수많은 독립적이고 상호 연결 가능하며 자율적인 네트워크로 넓은 지역을 저렴하고 쉽게 커버할 수 있게 하는 것입니다. Reticulum은 하나의 네트워크가 아닙니다. 그것은 수천 개의 네트워크를 구축하기 위한 도구입니다. 킬 스위치, 감시, 검열 및 통제가 없는 네트워크입니다. 서로 자유롭게 상호 운용되고, 결합 및 분리될 수 있으며 중앙 감독이 필요 없는 네트워크입니다. 인간을 위한 네트워크입니다. 사람들을 위한 네트워크입니다.
Reticulum은 완전한 네트워킹 스택이며 IP 또는 상위 계층에 의존하지 않지만, Reticulum의 기본 전송 수단으로 IP를 사용하는 것도 가능합니다. 따라서 Reticulum을 인터넷이나 사설 IP 네트워크를 통해 터널링하는 것은 간단합니다.
기존 네트워킹 스택에 대한 의존성이 없기 때문에 암호화 원칙에 직접 기반하여 구축된 네트워킹 스택을 구현할 수 있는 오버헤드가 확보되어, 개방형 및 신뢰 없는 네트워크에서도 복원력과 안정적인 기능을 제공합니다.
커널 모듈이나 드라이버가 필요하지 않습니다. Reticulum은 완전히 사용자 공간에서 실행되며, Python 3를 실행할 수 있는 거의 모든 시스템에서 실행될 수 있습니다.
매뉴얼 읽기
Reticulum의 전체 문서는 markqvist.github.io/Reticulum/manual/에서 확인할 수 있습니다.
Reticulum 매뉴얼을 PDF로 또는 EPUB 형식의 전자책으로 다운로드할 수도 있습니다.
자세한 내용은 reticulum.network 및 위키의 FAQ 섹션을 참조하세요.
주요 기능
- 조정 없이 전역적으로 고유한 주소 지정 및 식별
- 이기종 전송 매체를 통한 완전 자가 구성 다중 홉 라우팅
- 이기종 토폴로지에 대한 유연한 확장성
- Reticulum은 물리적 매체와 토폴로지의 모든 조합을 통해 데이터를 전송할 수 있습니다.
- 저대역폭 네트워크는 대규모 고대역폭 네트워크와 공존하고 상호 운용될 수 있습니다.
- 개시자 익명성, 신원을 노출하지 않고 통신
- Reticulum은 어떤 패킷에도 발신자 주소를 포함하지 않습니다.
- 모든 통신의 기초로서 비대칭 X25519 암호화 및 Ed25519 서명
- 기본 Reticulum Identity Keys는 512비트 타원 곡선 키셋입니다.
- 단일 패킷 및 링크를 포함한 모든 통신 유형에 전방향 보안(Forward Secrecy) 제공
- Reticulum은 암호화된 토큰에 다음 형식을 사용합니다:
- Curve25519에서 ECDH 키 교환에서 파생된 에페메랄 패킷 및 링크 키
- PKCS7 패딩을 사용한 AES-256 CBC 모드
- 인증을 위한 HMAC-SHA256
- IV는 os.urandom()을 통해 생성됩니다.
- 위조 불가능한 패킷 전달 확인
- 유연하고 확장 가능한 인터페이스 시스템
- Reticulum은 다양한 기본 제공 인터페이스 유형을 포함합니다.
- 사용자 또는 커뮤니티에서 제공하는 사용자 정의 인터페이스 유형을 로드하고 활용할 수 있는 기능
- 모든 것과 통신하기 위한 자체 사용자 정의 인터페이스를 쉽게 생성할 수 있습니다.
- 지원되는 모든 인터페이스 유형에 대한 인증 및 가상 네트워크 분할
- 직관적이고 사용하기 쉬운 API
- 소켓 API보다 간단하고 사용하기 쉬우면서도 더 강력합니다.
- 분산 및 탈중앙화 애플리케이션 구축을 훨씬 간단하게 만듭니다.
- 임의 양의 데이터를 안정적이고 효율적으로 전송
- Reticulum은 몇 바이트의 데이터나 수 기가바이트의 파일을 처리할 수 있습니다.
- 시퀀싱, 압축, 전송 조정 및 체크섬은 자동입니다.
- API는 사용하기 매우 쉽고 전송 진행률을 제공합니다.
- 가볍고 유연하며 확장 가능한 요청/응답 메커니즘
- 효율적인 링크 설정
- 암호화되고 검증된 링크 설정의 총 비용은 패킷 3개, 총 297바이트입니다.
- 링크를 열어두는 낮은 비용은 초당 0.44비트에 불과합니다.
- 채널 및 버퍼 메커니즘을 통한 안정적인 순차 전송
참조 구현
이 저장소의 Python 코드는 Reticulum의 참조 구현(Reference Implementation)입니다. Reticulum 프로토콜은 이 참조 구현 및 관련 매뉴얼에 의해 전체적이고 권위적으로 정의됩니다. Reticulum Identity <bc7291552be7a58f361522990465165c>로 식별되는 Mark Qvist가 유지 관리합니다.
현재나 미래에 2차 프로토콜 사양 파생물은 존재하지 않으며, 존재하지 않을 것입니다. 실행 가능하고, 기능적이며, 테스트 가능하고, 배포되어 행성 전역에서 24/7 운영되는 사양보다 더 나은 사양은 없습니다.
Reticulum에 대한 별도의 파생된 "공식 사양", "RFC" 또는 이와 유사한 것은 현재나 앞으로도 없을 것입니다:
참조 구현이 최종적이고 권위 있는 사양입니다.
Reticulum 프로토콜과의 호환성은 완전한 상호 운용성과 이 참조 구현과의 충분한 기능적 동등성을 갖는 것으로 정의됩니다. 이를 달성하는 특정 프로토콜 구현은 Reticulum입니다. 그렇지 않은 것은 Reticulum이 아닙니다.
참조 구현은 Reticulum 라이선스에 따라 라이선스가 부여됩니다.
Reticulum 프로토콜은 2016년에 퍼블릭 도메인에 기증되었습니다.
Reticulum 애플리케이션 예시
Reticulum이 무엇을 할 수 있는지 빠르게 알아보려면 매뉴얼의 Reticulum을 사용하는 프로그램 섹션이나 다음 자료를 참조하세요:
- LXMF는 Reticulum 위에 구축된 분산형 지연 및 장애 허용 메시지 전송 프로토콜입니다.
- LXST 프로토콜 및 프레임워크는 Reticulum을 통해 실시간 오디오 및 신호 전송을 제공합니다. 여기에는 음성 기반 애플리케이션 및 하드웨어 장치 구축을 위한 기본 요소와 유틸리티가 포함되어 있으며, 예를 들어
rnphone프로그램을 사용하여 하드웨어 전화기를 구축할 수 있습니다. - 오프그리드, 암호화되고 복원력 있는 메시 커뮤니케이션 플랫폼은 Nomad Network를 참조하세요.
- Android, Linux, macOS 및 Windows 앱 Sideband은 그래픽 인터페이스와 파일 전송, 이미지 및 음성 메시지, 실시간 음성 통화, 분산형 원격 측정 시스템, 매핑 기능 및 완전한 플러그인 확장성과 같은 다양한 고급 기능을 제공합니다.
- MeshChatX는 많은 내장 도구와 기능을 갖춘 완전한 기능의 LXMF 클라이언트로, 이미지 및 음성 메시지, 파일 전송, 음성 통화를 지원합니다. 또한 Nomad Network 노드를 탐색하기 위한 내장 페이지 브라우저가 포함되어 있습니다.
- 포함된 rnsh 프로그램을 사용하여 Reticulum을 통해 원격 셸 세션을 설정할 수 있습니다.
Reticulum은 어디에서 사용할 수 있나요?
최소 반이중 채널을 지원하고 5비트/초 이상의 처리량과 500바이트의 MTU를 가진 거의 모든 매체에서 사용할 수 있습니다. 데이터 라디오, 모뎀, LoRa 라디오, 직렬 회선, AX.25 TNC, 아마추어 무선 디지털 모드, WiFi 및 이더넷 장치, 자유 공간 광링크 및 유사한 시스템은 모두 Reticulum이 사용할 수 있는 물리적 장치 유형의 예입니다.
Reticulum과 함께 사용하도록 특별히 설계된 오픈 소스 LoRa 기반 인터페이스인 RNode가 있습니다. 직접 구축하거나 USB 연결만 필요한 완전한 트랜시버로 구매할 수 있습니다.
Reticulum은 기존 IP 네트워크를 통해 캡슐화될 수도 있으므로, 유선 이더넷, 로컬 WiFi 네트워크 또는 인터넷을 통해 사용하는 것을 막을 수 없습니다. 실제로 Reticulum의 강점 중 하나는 사용 가능한 인프라의 혼합을 사용하여 서로 다른 매체를 자가 구성, 복원력, 암호화된 메쉬로 쉽게 연결할 수 있다는 점입니다.
예를 들어, LoRa 라디오, 패킷 라디오 TNC 및 WiFi 네트워크에 모두 연결된 Raspberry Pi를 설정할 수 있습니다. 인터페이스가 구성되면 Reticulum이 나머지를 처리하며, WiFi 네트워크의 모든 장치는 LoRa 및 패킷 라디오 측의 노드와 통신할 수 있고 그 반대도 가능합니다.
어떻게 시작하나요?
Reticulum 네트워크 스택을 시작하는 가장 좋은 방법은 무엇을 하고 싶은지에 따라 다릅니다. 자세한 내용과 예제는 Reticulum 매뉴얼의 빠른 시작 섹션을 참조하세요.
시스템에 Reticulum 및 관련 유틸리티를 간단히 설치하려면 가장 쉬운 방법은 pip을 통한 것입니다. 그런 다음 Reticulum을 사용하는 프로그램을 시작하거나 rnsd 유틸리티를 사용하여 Reticulum을 시스템 서비스로 시작할 수 있습니다.```bash
pip install rns
`pip`을 통해 일반 사용자의 패키지 설치를 차단하는 운영 체제를 사용하는 경우,
`~/.config/pip/pip.conf` 파일을 편집하고 `[global]` 섹션에 다음 지시어를 추가하여
`pip`를 정상 동작으로 되돌릴 수 있습니다:```text
[global]
break-system-packages = true
또는 pipx 도구를 사용하여 격리된 환경에 Reticulum을 설치할 수 있습니다:```bash
pipx install rns
When first started, Reticulum will create a default configuration file,
providing basic connectivity to other Reticulum peers that might be locally
reachable. The default config file contains a few examples, and references for
creating a more complex configuration.
If you have an old version of `pip` on your system, you may need to upgrade it first with `pip install pip --upgrade`. If you no not already have `pip` installed, you can install it using the package manager of your system with `sudo apt install python3-pip` or similar.
For more detailed examples on how to expand communication over many mediums such
as packet radio or LoRa, serial ports, or over fast IP links and the Internet using
the UDP and TCP interfaces, take a look at the [Supported Interfaces](https://markqvist.github.io/Reticulum/manual/interfaces.html)
section of the [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).
## 포함된 유틸리티
Reticulum은 네트워크 관리, 상태 및 정보 확인, 기타 작업을 위한 다양한 유용한 유틸리티를 포함합니다. 이 프로그램들에 대한 자세한 내용은 [Reticulum 매뉴얼](https://markqvist.github.io/Reticulum/manual/)의 [포함된 유틸리티 프로그램](https://markqvist.github.io/Reticulum/manual/using.html#included-utility-programs) 섹션에서 읽을 수 있습니다.
- 항상 사용 가능한 서비스로 Reticulum을 실행하는 시스템 데몬 `rnsd`
- 인터페이스에 대한 정보를 표시하는 인터페이스 상태 유틸리티 `rnstatus`
- 경로 테이블을 보고 수정할 수 있는 경로 조회 및 관리 도구 `rnpath`
- 목적지 연결성을 확인하는 진단 도구 `rnprobe`
- 시스템 간 파일 전송을 쉽게 해주는 간단한 파일 전송 프로그램 `rncp`
- 신원 관리 및 암호화 유틸리티 `rnid` : 신원(ID) 관리 및 파일 암호화/복호화
- `rnsh` 프로그램 : 원격 시스템과 완전한 대화형 셸 세션 설정 가능
- 원격 명령 실행 프로그램 `rnx` : 간단한 명령 및 프로그램을 실행하고 원격 시스템에서 출력을 검색
- `rngit` 프로그램 : Reticulum을 통해 저장소를 제공하기 위한 완전한 다중 저장소 Git 노드 제공
- 포함된 `git-remote-rns` 헬퍼 : Reticulum을 통해 Git 저장소와 상호작용 가능
모든 도구(`rnx`, `rncp` 포함)는 LoRa나 패킷 라디오와 같은 저대역폭 링크에서도 안정적이고 잘 작동합니다. Reticulum을 통한 완전한 기능의 원격 셸을 원한다면 [rnsh](https://github.com/acehoss/rnsh) 프로그램도 참조하십시오.
## 지원되는 인터페이스 유형 및 장치
Reticulum은 Reticulum이 실행될 수 있는 대부분의 통신 하드웨어를 포괄하는 일반화된 인터페이스 유형을 구현합니다. 하드웨어가 지원되지 않는 경우, [사용자 정의 인터페이스 모듈을 구현하는 것은 간단합니다](https://markqvist.github.io/Reticulum/manual/interfaces.html#custom-interfaces).
사용자 정의 인터페이스에 대한 풀 리퀘스트는 일반적으로 유용하고 실제 사용에서 잘 테스트된 경우 감사히 받아들입니다.
현재 다음과 같은 내장 인터페이스가 지원됩니다:
- 모든 이더넷 장치
- [RNode](https://unsigned.io/rnode/)를 사용한 LoRa
- 패킷 라디오 TNC (AX.25 유무 관계없음)
- KISS 호환 하드웨어 및 소프트웨어 모뎀
- 직렬 포트가 있는 모든 장치
- IP 네트워크를 통한 TCP
- IP 네트워크를 통한 UDP
- stdio 또는 파이프를 통한 외부 프로그램
- stdio 또는 파이프를 통한 사용자 정의 하드웨어
## 성능
Reticulum은 *매우* 넓은 사용 가능 성능 범위를 목표로 하지만, 저대역폭 매체에서의 기능과 성능을 우선시합니다. 목표는 일반 하드웨어에서 초당 250비트에서 초당 1기가비트까지 동적인 성능 범위를 제공하는 것입니다.
현재 사용 가능한 성능 범위는 약 초당 150비트에서 초당 500메가비트이며, 그보다 빠른 물리적 매체는 포화되지 않습니다. 현재 수준 이상의 성능은 향후 업그레이드를 위해 의도되었지만, 현재 시점에서 높은 우선순위는 아닙니다.
## 현재 상태
모든 핵심 프로토콜 기능이 구현되어 작동 중이나, 실제 사용이 탐구되고 이해됨에 따라 추가 사항이 발생할 수 있습니다. API와 와이어 형식은 안정적인 것으로 간주할 수 있습니다.
## 의존성
기본 `rns` 패키지 설치에는 아래 나열된 두 가지 외부 의존성만 필요합니다. 거의 모든 시스템과 배포판에서 이러한 의존성을 위한 패키지를 쉽게 사용할 수 있으며, `pip`를 사용하여 `rns` 패키지를 설치하면 함께 다운로드되어 설치됩니다.
- [PyCA/cryptography](https://github.com/pyca/cryptography)
- [pyserial](https://github.com/pyserial/pyserial)
더 이례적인 시스템이나 드문 경우에는 위 모듈 중 하나 이상을 설치하거나 컴파일하는 것이 불가능할 수 있습니다. 이러한 상황에서는 설치에 외부 의존성이 필요 없는 `rnspure` 패키지를 대신 사용할 수 있습니다. `rns` 패키지와 `rnspure` 패키지의 내용은 *동일*합니다. 유일한 차이점은 `rnspure` 패키지가 설치에 필요한 의존성을 나열하지 않는다는 점입니다.
Reticulum이 어떻게 설치되고 시작되든, 외부 의존성은 *필요*하고 *사용 가능*한 경우에만 로드됩니다. 예를 들어 [pyserial](https://github.com/pyserial/pyserial)을 지원할 수 없는 시스템에서 Reticulum을 사용하려는 경우 `rnspure` 패키지를 사용하여 사용하는 것이 완전히 가능하지만, Reticulum은 직렬 기반 인터페이스를 사용할 수 없습니다. 다른 사용 가능한 모든 모듈은 필요할 때 계속 로드됩니다.
**참고!** [PyCA/cryptography](https://github.com/pyca/cryptography)를 지원하지 않는 시스템에서 `rnspure` 패키지를 사용하여 Reticulum을 실행하는 경우, 이 문서의 [암호화 기본 요소](#cryptographic-primitives) 섹션을 읽고 이해하는 것이 중요합니다.
## 연결 부트스트래핑
Reticulum은 구독하는 서비스도 아니고, "가입"하는 단일 글로벌 네트워크도 아닙니다. Reticulum은 네트워크 자체를 통해 사용 가능한 공용 인터페이스를 발견하는 기능을 제공하며, 더 넓은 커뮤니티는 연결을 부트스트랩하기 위한 다양한 공개 진입점 디렉토리를 제공했습니다.
Reticulum을 통해 초기 연결을 설정하는 방법을 알아보려면 매뉴얼의 [연결 부트스트래핑](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) 섹션을 읽으십시오.
이미 이 작동 방식에 대한 일반적인 아이디어가 있다면, [directory.rns.recipes](https://directory.rns.recipes/) 및 [rmap.world](https://rmap.world)와 같은 커뮤니티 운영 사이트를 사용하여 글로벌 분산 Reticulum 백본에 대한 초기 연결을 위한 인터페이스 정의를 찾을 수 있습니다.
## 공개 테스트넷
***중요!** 역사적으로 개발자 대상 테스트넷이 Reticulum 프로젝트 자체에 의해 제공되었습니다. 글로벌 Reticulum 노드 및 진입점의 양이 상당한 수준으로 증가함에 따라, 이 공개 테스트넷(암스테르담 테스트넷 진입점 포함)은 이제 폐기되었습니다. 해당 진입점에 의존하는 인스턴스가 여전히 있다면 분산 백본을 대신 사용하도록 전환하십시오. 이제 Reticulum은 완전한 온-네트워크 인터페이스 발견 및 연결 부트스트래핑 시스템을 포함합니다. 매뉴얼의 [연결 부트스트래핑](https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity) 섹션을 참조하십시오.*
## Reticulum 지원
이것이 가능하려면 여러분의 도움이 필요합니다. 다음 채널 중 하나를 통해 기부하여 개방적이고 자유롭고 사적인 통신 시스템의 지속적인 개발을 지원해 주십시오:
- 모네로 (Monero): ```
84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
Bitcoin ``` bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6
- Ethereum ```
0x91C421DdfB8a30a49A71d63447ddb54cEBe3465E
- Liberapay: https://liberapay.com/Reticulum/
- Ko-Fi: https://ko-fi.com/markqvist
암호화 프리미티브
Reticulum은 효율적이고 강력하며 잘 검증된 암호화 프리미티브 세트를 사용합니다. 이 프리미티브는 일반 CPU와 마이크로컨트롤러 모두에서 사용할 수 있는 널리 이용 가능한 구현체를 갖추고 있습니다.
이 특정 프리미티브 세트를 선택한 주요 고려 사항 중 하나는 실질적으로 모든 현재 컴퓨팅 플랫폼에서 비교적 적은 함정으로 안전하게 구현할 수 있다는 점입니다.
여기에 나열된 프리미티브는 권위적입니다. Reticulum이라고 주장하면서 이 정확한 프리미티브를 사용하지 않는 것은 Reticulum이 아니며, 의도적으로 손상되거나 약화된 클론일 가능성이 있습니다. 사용된 프리미티브는 다음과 같습니다:
- Reticulum Identity Keys는 512비트 Curve25519 키셋입니다.
- 서명용 256비트 Ed25519 키
- ECDH 키 교환용 256비트 X22519 키
- 키 유도를 위한 HKDF
- 암호화된 토큰은 Fernet 사양을 기반으로 합니다.
- Curve25519에서 ECDH 키 교환을 통해 파생된 임시 키
- 메시지 인증을 위해 SHA256을 사용하는 HMAC
- IV는
os.urandom()또는 더 나은 방법으로 생성되어야 합니다. - PKCS7 패딩을 사용하는 CBC 모드의 AES-256
- Fernet 버전 및 타임스탬프 메타데이터 필드 없음
- SHA-256
- SHA-512
기본 설치 구성에서 X25519, Ed25519 및 AES-256-CBC 프리미티브는 OpenSSL(PyCA/cryptography 패키지를 통해)에서 제공됩니다. 해시 함수 SHA-256 및 SHA-512는 표준 Python hashlib에서 제공됩니다. HKDF, HMAC, Token 프리미티브 및 PKCS7 패딩 함수는 항상 다음 내부 구현에서 제공됩니다:
Reticulum은 또한 모든 필수 프리미티브의 완전한 구현체를 순수 Python으로 포함하고 있습니다. Reticulum이 시작될 때 시스템에 OpenSSL과 PyCA가 없으면 Reticulum은 대신 내부 순수 Python 프리미티브를 사용합니다. 이에 따른 사소한 결과는 성능입니다. OpenSSL 백엔드가 훨씬 빠릅니다. 그러나 가장 중요한 결과는 OpenSSL만큼 많은 검증, 테스트 및 검토를 거치지 않은 프리미티브를 사용함으로써 발생할 수 있는 보안 손실입니다.
기본적으로 Reticulum을 설치하면 OpenSSL과 PyCA가 아직 설치되지 않은 경우 자동으로 설치되어야 합니다. 순수 Python 프리미티브를 사용하는 것은 사용자가 이 요구 사항을 특별히 재정의한 경우에만 가능합니다. 예를 들어 일반 rns 패키지 대신 rnspure 패키지를 설치하거나 로컬 소스 코드에서 직접 실행하는 경우입니다.
내부 순수 Python 프리미티브를 사용하려면 이로 인해 발생하는 위험을 잘 이해하고 이러한 위험이 수용 가능한지 정보에 기반한 결정을 내리는 것이 매우 권장됩니다.
Reticulum은 비교적 젊은 소프트웨어이며 그렇게 간주되어야 합니다. 암호화 모범 사례를 최우선으로 염두에 두고 구축되었지만, 외부 보안 감사를 받지 않았으며, 개인정보나 보안을 저해하는 버그가 있을 수 있습니다. 도움을 주거나 감사 비용을 후원하고 싶다면 연락해 주시기 바랍니다.
감사 및 크레딧
Reticulum은 그 위에 구축된 엄청난 양의 오픈 소스 작업, 모든 참여자의 기여, 그리고 수년간 프로젝트를 지원해준 모든 사람들 덕분에 존재할 수 있습니다. 도움을 주신 모든 분들께 진심으로 감사드립니다.
다른 여러 모듈과 프로젝트가 Reticulum의 일부이거나 Reticulum에서 사용됩니다. 다음 프로젝트의 저자와 기여자에게 진심으로 감사드립니다:
- PyCA/cryptography, BSD 라이선스
- Pure-25519 by Brian Warner, MIT 라이선스
- Pysha2 by Thom Dixon, MIT 라이선스
- Python AES-128 by Or Gur Arie, MIT 라이선스
- Python AES-256 by BoppreH, MIT 라이선스
- Curve25519.py by Nicko van Someren, 퍼블릭 도메인
- I2Plib by Viktor Villainov
- PySerial by Chris Liechti, BSD 라이선스
- Configobj by Michael Foord, Nicola Larosa, Rob Dennis & Eli Courtwright, BSD 라이선스
- ifaddr by Stefan C. Mueller, MIT 라이선스
- Umsgpack.py by Ivan A. Sergeev
- rnsh by Aaron Heise
- Python