
Security News
/Research
npm Phishing Email Targets Developers with Typosquatted Domain
A phishing attack targeted developers using a typosquatted npm domain (npnjs.com) to steal credentials via fake login pages - watch out for similar scams.
react-native-simple-openvpn
Advanced tools
English | 简体中文
A simple react native module to interact with OpenVPN
If this project has helped you out, please support us with a star 🌟
RNSimpleOpenvpn | React Native |
---|---|
1.0.0 ~ 1.2.0 | 0.56 ~ 0.66 |
2.0.0 ~ 2.1.1 | 0.63 ~ 0.71 |
2.1.2 | 0.72 |
>= 2.1.3 | >= 0.73 |
See CHANGELOG for details
# npm
npm install --save react-native-simple-openvpn
# or use yarn
yarn add react-native-simple-openvpn
From react-native 0.60 autolinking will take care of the link step
react-native link react-native-simple-openvpn
Add the following to android/settings.gradle
:
rootProject.name = 'example'
+ include ':vpnLib'
+ project(':vpnLib').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-simple-openvpn/vpnLib')
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
If your React Native version is 0.74 or higher, add the following to android/app/build.gradle
:
android {
// ...
+ packaging {
+ jniLibs {
+ useLegacyPackaging = true
+ }
+ }
}
Due to file size limitations, jniLibs are too big to be published on npm. Use the assets on GitHub Releases instead
Download and unzip the resources you need for the corresponding architecture, and put them in android/app/src/main/jniLibs
(create a new jniLibs
folder if you don't have one)
project
├── android
│ ├── app
│ │ └── src
│ │ └── main
│ │ └── jniLibs
│ │ ├── arm64-v8a
│ │ ├── armeabi-v7a
│ │ ├── x86
│ │ └── x86_64
│ └── ...
├── ios
└── ...
If using CocoaPods, run it in the ios/
directory
pod install
See iOS Guide for iOS side Network Extension configuration and OpenVPN integration
Add the following to your project's AppDelegate.m
:
+ #import "RNSimpleOpenvpn.h"
@implementation AppDelegate
// ...
+ - (void)applicationWillTerminate:(UIApplication *)application
+ {
+ [RNSimpleOpenvpn dispose];
+ }
@end
Please make sure the Header Search Paths of Build Settings contain the following paths:
$(SRCROOT)/../node_modules/react-native-simple-openvpn/ios
Or, if using CocoaPods, the following paths should be automatically included there:
"${PODS_ROOT}/Headers/Public/react-native-simple-openvpn"
import React, { useEffect } from 'react';
import { Platform } from 'react-native';
import RNSimpleOpenvpn, { addVpnStateListener, removeVpnStateListener } from 'react-native-simple-openvpn';
const isIPhone = Platform.OS === 'ios';
const App = () => {
useEffect(() => {
async function observeVpn() {
if (isIPhone) {
await RNSimpleOpenvpn.observeState();
}
addVpnStateListener((e) => {
// ...
});
}
observeVpn();
return async () => {
if (isIPhone) {
await RNSimpleOpenvpn.stopObserveState();
}
removeVpnStateListener();
};
});
async function startOvpn() {
try {
await RNSimpleOpenvpn.connect({
remoteAddress: '192.168.1.1 3000',
ovpnFileName: 'client',
assetsPath: 'ovpn/',
providerBundleIdentifier: 'com.example.RNSimpleOvpnTest.NEOpenVPN',
localizedDescription: 'RNSimpleOvpn',
});
} catch (error) {
// ...
}
}
async function stopOvpn() {
try {
await RNSimpleOpenvpn.disconnect();
} catch (error) {
// ...
}
}
function printVpnState() {
console.log(JSON.stringify(RNSimpleOpenvpn.VpnState, undefined, 2));
}
// ...
};
export default App;
For more, read the API Reference
The following items were used in this project
Thanks to all the people who contribute
GPLv2 © Nor Cod
FAQs
React Native Open VPN Module
The npm package react-native-simple-openvpn receives a total of 24 weekly downloads. As such, react-native-simple-openvpn popularity was classified as not popular.
We found that react-native-simple-openvpn demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
A phishing attack targeted developers using a typosquatted npm domain (npnjs.com) to steal credentials via fake login pages - watch out for similar scams.
Security News
Knip hits 500 releases with v5.62.0, refining TypeScript config detection and updating plugins as monthly npm downloads approach 12M.
Security News
The EU Cyber Resilience Act is prompting compliance requests that open source maintainers may not be obligated or equipped to handle.