PHPackages                             bhutanio/laravel-bencode - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. bhutanio/laravel-bencode

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

bhutanio/laravel-bencode
========================

A BEncode Wrapper for Laravel

1.0(12y ago)31.0k2[1 issues](https://github.com/bhutanio/laravel-bencode/issues)MITPHPPHP &gt;=5.3.0

Since Sep 24Pushed 11y ago1 watchersCompare

[ Source](https://github.com/bhutanio/laravel-bencode)[ Packagist](https://packagist.org/packages/bhutanio/laravel-bencode)[ RSS](/packages/bhutanio-laravel-bencode/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

Bencode for Laravel 4
=====================

[](#bencode-for-laravel-4)

Also see - [torrent-bencode](https://github.com/bhutanio/torrent-bencode)
-------------------------------------------------------------------------

[](#also-see---torrent-bencode)

Bencode (pronounced like B encode) is the encoding used by the peer-to-peer file sharing system BitTorrent for storing and transmitting loosely structured data.

It supports four different types of values:

- byte strings,
- integers,
- lists, and
- dictionaries (associative arrays).

Bencoding is most commonly used in torrent files. These metadata files are simply bencoded dictionaries.

While less efficient than a pure binary encoding, bencoding is simple and (because numbers are encoded as text in decimal notation) is unaffected by endianness, which is important for a cross-platform application like BitTorrent. It is also fairly flexible, as long as applications ignore unexpected dictionary keys, so that new ones can be added without creating incompatibilities.

\##Requirements Apache or Nginx = Latest production version PHP &gt;= 5.4.0 (with MCrypt PHP Extension) Laravel &gt;= 4.0

\##Installation

Require this package in your composer.json and update composer.

```
"bhutanio/laravel-bencode": "dev-master"

```

**Update Composer**

`composer update` or `php composer.phar update`

**Register the Class and Facade**

In **app/config/app.php** add a provider and an aliase.

```
'providers' => array(
  'Bhutanio\BEncode\ServiceProvider',
);

'aliases' => array(
  'BEncode'         => 'Bhutanio\BEncode\Facade',
);
```

\##Usage

*Simple Example*

```
	$bcoder = new BEncode;
	$bcoder->set([
		'announce'=>'http://www.private-tracker.com',
		'comment'=>'Downloaded from Private Tracker',
		'created_by'=>'PrivateTracker v1.0'
	]);

	// decode Torrent file
	$torrent = $bcoder->bdecode( File::get('AwesomeMovie.torrent'));
	print_r($torrent);

	// show Torrent contents
	$files = $bcoder->filelist( $torrent );
	print_r($files);

	// make Torrent private
	$torrent = $bcoder->make_private($torrent);
	print_r($torrent);

	$infohash = sha1($bcoder->bencode($torrent["info"]));
	$binhash = pack("H*", $bcoder->bencode($torrent["info"])));
```

*Static Method*

```
BEncode::set([
        'announce'=>'http://www.private-tracker.com',
        'comment'=>'Downloaded from Private Tracker',
        'created_by'=>'PrivateTracker v1.0'
	]);

$torrent = BEncode::bdecode( File::get('AwesomeMovie.torrent'));
$torrent = BEncode::make_private($torrent);
$infohash = sha1(BEncode::bencode($torrent["info"]));
$binhash = pack("H*", sha1(BEncode::bencode($torrent["info"])));

print_r($torrent);
```

\##Functions

```
/**
 * Data Setter
 * @param array $data [array of public variables]
 * eg:
 *  $bcoder = new \Bhutanio\BEncode;
 * 	$bcoder->set([
 *		'announce'=>'http://www.example.com',
 *		'comment'=>'Downloaded from example.com',
 *		'created_by'=>'TorrentSite v1.0'
 *	]);
 */
public function set($data=array()) {}

/**
 * Decode a torrent file into Bencoded data
 * @param  string  $s 	[link to torrent file]
 * @param  integer $pos [file position pointer]
 * @return array/null 	[Array of Bencoded data]
 * eg:
 * 		$bcoder = new \Bhutanio\BEncode;
 * 		$torrent = $bcoder->bdecode( File::get('MyAwesomeTorrent.torrent'));
 *  	var_dump($torrent);
 */
public function bdecode($s, &$pos=0) {}

/**
 * Created Torrent file from Bencoded data
 * @param  array $d [array data of a decoded torrent file]
 * @return string 	[data can be downloaded as torrent]
 */
public function bencode(&$d) {}

/**
 * Decode a torrent file into Bencoded data
 * @param  string $filename 	[File Path]
 * @return array/null 			[Array of Bencoded data]
 */
public function bdecode_file($filename) {}

/**
 * Generate list of files in a torrent
 * @param  array $data 	[array data of a decoded torrent file]
 * @return array 		[list of files in an array]
 */
public function filelist($data) {}

/**
 * Replace array data on Decoded torrent data so that it can be bencoded into a private torrent file.
 * Provide the custom data using $this->set();
 * @param  array $data 	[array data of a decoded torrent file]
 * @return array 		[array data for torrent file]
 */
public function make_private($data) {}
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

4612d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3f8962bbd8caeec51e9510bf6bd39d84707e609d67a4f07191e0809f58b1f4c2?d=identicon)[abit.bt](/maintainers/abit.bt)

---

Top Contributors

[![abixalmon](https://avatars.githubusercontent.com/u/1712938?v=4)](https://github.com/abixalmon "abixalmon (12 commits)")[![erindru](https://avatars.githubusercontent.com/u/1001316?v=4)](https://github.com/erindru "erindru (2 commits)")

---

Tags

laravelbencodebdecodebdecode\_file

### Embed Badge

![Health badge](/badges/bhutanio-laravel-bencode/health.svg)

```
[![Health](https://phpackages.com/badges/bhutanio-laravel-bencode/health.svg)](https://phpackages.com/packages/bhutanio-laravel-bencode)
```

###  Alternatives

[barryvdh/laravel-ide-helper

Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.

14.9k123.0M687](/packages/barryvdh-laravel-ide-helper)[interaction-design-foundation/laravel-geoip

Support for multiple Geographical Location services.

17221.0k3](/packages/interaction-design-foundation-laravel-geoip)[nedwors/navigator

A Laravel package to ease defining navigation menus

433.1k](/packages/nedwors-navigator)[xefi/faker-php-laravel

Faker php integration with laravel

1915.1k](/packages/xefi-faker-php-laravel)[dcblogdev/laravel-junie

Install pre-configured guides for Jetbrains Junie

392.5k](/packages/dcblogdev-laravel-junie)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
