Skip to content

Censorship adapts. So we must.

Apranik is an open-source core that circumvention apps are built on. It's modular, so when censors block the usual ways through, a researcher can add a new method once and it reaches every app that uses it.

Open source · MPL 2.0

Scroll

Blocking changes. Access shouldn't depend on it.

Censors don't block once. They watch what works, then block that. A method that connects people today can stop working without warning.

Researchers keep finding new ways through. But a new method isn't something people can use yet. It has to be rebuilt, tested, and shipped inside each app, one at a time, and by the time it arrives, censors may have moved again.

People lose access in the gap between a method being found and a method being usable.

One loop, every time censors change.

  1. Censors block a method that was workingCensors
  2. A researcher finds a new way throughResearchers
  3. They add it to Apranik as a moduleResearchers
  4. It's reviewed and testedCore maintainers
  5. It ships in a releaseCore maintainers
  6. Clients and panels pick up the releaseClient and panel maintainers
  7. People reconnectPeople using the apps

Apranik covers the middle of the loop. A method is added, tested, and released once, so it doesn't have to be rebuilt inside every app.

A new method shouldn't mean reinventing the wheel.

Without Apranik, every app rebuilds, tests and releases each new method on its own, and censors may block it before it arrives. With Apranik, it is added to the core once and every app picks it up in a release.

For each new methodWithout ApranikEvery app on its ownWith ApranikOne shared core
Who does the work, and how often?Every app’s team, separately, for every new methodThe same work is repeated by many teams, and it grows with every app and every method.One team, once, in the coreThe work is done and reviewed in one place.
When can people use a new method?Only after each app has rebuilt, tested and released itPeople wait even though the method already exists.After one core release, when apps updatePeople get it as soon as their app updates.
What if censors block it first?Many apps are too lateA slow rollout gives censors time to block it before it reaches many people.Apps already have it, or get the fix togetherA shorter wait leaves censors less time to react.

Build it once. Everyone gets it.

Apranik is the core that clients and server panels build on. It handles the connection itself, so they don't each have to.

It's modular. Each part of a connection is its own module, and a new method is another module that plugs into the same place. A researcher can add one without changing the rest, and a maintainer can review it on its own.

ResearcherCore maintainersCore releaseClientClientPanelPanelwrites a modulereviews it on its ownships to everyoneADDREVIEWSHIPUPDATE

Each app updates the core. Nothing is rebuilt.

  1. Researcher writes a module.
  2. Core maintainers review it on its own.
  3. Core release ships it to everyone.
  4. Every client and panel updates the core. Nothing is rebuilt.

Built in the open, by the people who need it.

Open source

The code is public. Anyone can read it, check it, and carry it forward.

Free for everyone

Free to use, and free to adapt in any community.

Community-built

Researchers and maintainers shape it together.

Bring the new part. The rest is here.

Everything below is already built into the core.

TransportsTCPUDPTLSWebSocketHTTPUpgradePROXY protocolFragment
ProtocolsSOCKS5HTTPTrojanVLESS
RoutingRulesDatasetsBlockRoute
DNSUDPTCPDoTDoHCache
SniffersTLSHTTP
See everything that's supported

Don't trust. Check.

The code is public

Read it, run it, question it.

Read the code

Every change is reviewed

Nothing ships without a second pair of eyes.

See the changes

Reports are private

They go to the maintainers by email, and a fix ships before the details are public.

See how reports are handled

Join the loop.

Apranik is built in the open. Read the code, talk with the people building it, or send a first change.

Straight answers.

What is Apranik?

An open-source core that circumvention apps and server panels are built on. It handles the connection itself, so each app doesn't have to, and new ways through are added to it as separate modules. It is not a VPN app you use directly: it's the layer underneath the apps and panels people use.

Who is it for?

Researchers who find new methods, developers who build clients and server panels, and maintainers of the core. You don't need to be a developer to use an app built on Apranik.

What does the name mean?

Apranik was a Sasanian commander who fought the Arab invasion of Persia (Iran) in the seventh century. By tradition, she kept up a guerrilla war after the empire fell, and her motto was “No retreat, no surrender.”

How is it different from other proxy tools?

It's built around adding new methods as separate modules, so a researcher can contribute one without learning the whole project, and a maintainer can review it on its own.

Is it free, and who can use it?

It's free to use and free to adapt, and any community can adapt it to the censorship it faces, wherever it is. It is released under the Mozilla Public License 2.0.

How do I add a new method?

Write it as a module, test it on its own, and send it for review. Every change is reviewed before it ships. The contributing guide walks through it.

Is it safe to use?

Apranik is open source, so anyone can read and check the code. Every change is reviewed before it ships, and vulnerability reports are handled privately. The security page says how to report one.

Does it make me anonymous?

Apranik's job is to get you around blocking. Anonymity is a different goal that needs its own tools, so if it matters to you, plan for it separately.

Will it always work?

Apranik is built for a moving target. Censors keep blocking what works, so no single method lasts forever. That is why new methods are added as modules and shipped to every app in one release: access can adapt as fast as blocking does.

How do I report a security issue?

Email we-apranik@proton.me, and please don't post it publicly. The security page says what to include.