NPAPI

NPAPI(Netscape Plugin Application Programming Interface)는 웹 브라우저용으로 플러그인을 개발할 수 있게 허용하는 API이다. 처음에는 1995년 넷스케이프 내비게이터 2.0을 시작으로 넷스케이프 브라우저용으로 개발되었으나 이어서 다른 브라우저들에도 채용되었다.

NPAPI 구조에서 플러그인은 audio/mp3와 같은 처리 가능한 콘텐츠 타입을 선언한다. 브라우저가 네이티브로 처리할 수 없는 콘텐츠 타입을 마주치면 적절한 플러그인을 로드하여 플러그인이 렌더링할 브라우저 콘텍스트 내에 공간을 비치시킨 다음 데이터를 그곳으로 흘려보낸다. 이러한 플러그인은 데이터를 렌더링하는 역할을 하게 된다. 이 플러그인은 페이지 안에 자리를 차지하며 동작하는데 이는 외부 애플리케이션을 실행시켜 알 수 없는 콘텐츠 타입을 처리했던 오래된 브라우저들과는 상반된다.

NPAPI의 요구사항은 각 플러그인이 플러그인 콘텐츠의 초기화, 작성, 삭제, 위치 지정을 위한 약 15개의 기능을 구현, 노출해야 한다는 것이다. NPAPI는 또한 스크립팅, 인쇄, 전체 화면 플러그인, 창없는 플러그인, 콘텐츠 스크리밍을 지원한다.

스크립트 지원 
 라이브커넥트(LiveConnect): 자바와 자바스크립트 소프트웨어가 웹 페이지 안에서 상호 통신할 수 있게 해 주는 웹 브라우저의 기능이다.
 크로스 포인트 커넥트(XPConnect): XPCOM과 자바스크립트 간의 단순한 상호운용을 허용하는 기술이다.
 NPRuntime

브라우저 지원 
다음의 웹 브라우저들이 NPAPI 플러그인들을 지원한다.
 파이어폭스 (모질라는 플래시 플레이어를 제외하고 2017년 3월 NPAPI 지원을 제거할 것이다. 윈도우용 64비트 파이어폭스는 플래시와 실버라이트 플러그인용 NPAPI만을 지원한다.)
 페일 문
 Isis (웹OS)
 캉커러
 미도리
 오디세이 웹 브라우저 (MorphOS)
 QupZilla
 사파리
 시몽키
 웹
 유즈블

다음의 웹 브라우저들은 NPAPI를 지원하지만 개발이 중단되었다:
 카미노
 모질라 애플리케이션 스위트
 넷스케이프 내비게이터, 넷스케이프 커뮤니케이터

스크립팅 지원 
스크립팅은 웹 페이지에서 자바스크립트 코드가 플러그인과 상호 작용할 수 있게 하는 기능이다. 다양한 버전의 넷스케이프, 그 뒤 모질라는 라이브커넥트, XP커넥트, NP런타임을 포함하여 각기 다른 기술들을 사용하여 이 기능을 지원하였다.
 라이브커넥트
 XP커넥트
 NP런타임

플러그인 
다음은 NPAPI 기반 플러그인 목록이다.
 어도비 어크로뱃 뷰어
 어도비 플래시 플레이어
 어도비 쇼크웨이브 플레이어
 DivX 웹 플레이어
 자바 런타임 환경
 유니티 웹 플레이어
 윈도우 정품 혜택 플러그인 (파이어폭스용)

유사 기술

액티브X

PPAPI 

2009년 8월 12일, 구글 코드의 한 페이지는 새로운 프로젝트 페퍼(Project Pepper)를 선보이면서 페퍼 플러그인 API(PPAPI)와 연계되었다.

PPAPI는 NPAPI의 파생물로서, 플러그인의 포팅을 높이고 더 안전하게 만드는 데 초점을 둔다.

PPAPI는 구글 크롬과 크로미엄에만 지원되었다. 나중에 오페라와 비발디와 같은 다른 크로미엄 브라우저들 또한 PPAPI 플러그인 지원을 추가하였다.

2012년 2월, 어도비 시스템즈는 차기 리눅스 버전의 어도비 플래시 플레이어는 PPAPI를 통해서만 제공될 것이라 발표하였다. NPAPI로 지원되는 이전 릴리스 플래시 플레이어 11.2는 5년 동안 보안 업데이트를 받게 된다. 2016년 8월, 어도비는 이전 발언과는 달리 리눅스에서 NPAPI 플래시 플레이어를 다시 지원하고 새로운 버전을 계속 출시할 것이라고 발표하였다.

같이 보기 
 NSAPI(Netscape Server Application Programming Interface)
 액티브X

각주

외부 링크 
 플러그인 개발 문서  - 모질라 개발자 센터 (NPAPI API 포함)

넷스케이프
API
웹 브라우저