docs: spec changes
This commit is contained in:
parent
9d7a59ed85
commit
489a62f3c7
4 changed files with 52 additions and 24 deletions
5
docs/manifest.md
Normal file
5
docs/manifest.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Manifest
|
||||
|
||||
---
|
||||
|
||||
The manifest spec is located in `/package.toml` as an example.
|
|
@ -1,24 +0,0 @@
|
|||
# PKGFILE
|
||||
This file is essentially a tar with the manifest in the header.
|
||||
|
||||
## Format
|
||||
The format is as follows:
|
||||
```
|
||||
[PKGFILE version (1 byte)][manifest length x 256 (1 byte)][manifest length (1 byte)]
|
||||
[manifest (manifest length bytes)]
|
||||
[archive]
|
||||
```
|
||||
|
||||
The file is Big Endian.
|
||||
|
||||
## Unpacking
|
||||
To unpack a PKGFILE, you can use the following command:
|
||||
```bash
|
||||
pkgr unpack <pkgfile> <output>
|
||||
```
|
||||
|
||||
## Packing
|
||||
You can write your own packer, or use the following command:
|
||||
```bash
|
||||
pkgr pack <manifest path> <archive path> <output file>
|
||||
```
|
25
docs/pkgfiles/current.md
Normal file
25
docs/pkgfiles/current.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
# PKGFILE
|
||||
|
||||
version 1
|
||||
|
||||
---
|
||||
PKGFiles are an all-in-one solution to install a package.
|
||||
|
||||
## Overhead
|
||||
|
||||
Because pkgfiles include everything, many times you can download more than what is needed.
|
||||
This may seem stupid but pkgfiles are *not* meant to stay on your system.
|
||||
|
||||
## Format
|
||||
|
||||
The format is as follows:
|
||||
|
||||
```
|
||||
[PKGFILE version (1 byte)][manifest length x 256 (1 byte)][manifest length (1 byte)]
|
||||
[manifest (manifest length bytes)]
|
||||
[archive]
|
||||
```
|
||||
|
||||
### Endianness
|
||||
|
||||
The file is Big Endian.
|
22
docs/pkgfiles/planned.md
Normal file
22
docs/pkgfiles/planned.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Planned PKGFILE features.
|
||||
|
||||
---
|
||||
|
||||
### Compression
|
||||
|
||||
> Planned for next PKGFILE version.
|
||||
|
||||
Currently, compression is not supported, since PKGFILE is an all-in-one solution this is very unpleasant.
|
||||
When compression will be implemented, there is a big possibility that the manifest won't be compressed.
|
||||
This is done to allow servers to easily parse and inspect manifests.
|
||||
The compression will likely be versatile in the way that the format will be stated in the header and the pkgr
|
||||
implementation can work it out by itself.
|
||||
There will be a default compression format, likely gzip.
|
||||
|
||||
### Compact Manifest
|
||||
|
||||
> Not planned yet.
|
||||
|
||||
Right now, the manifest is an utf-8 blob sandwiched between the header and the archive.
|
||||
This also requires a fixed max size for the manifest which is unfavourable.
|
||||
In the future, the manifest may turn into a versatile binary blob with no size limitations.
|
Loading…
Reference in a new issue