POSIX Streams 
The package `POSIX_Stream` allows you to treat a POSIX file descriptor (of
type `POSIX.IO.File_Descriptor` as a descendant of
`Ada.Streams.Root_Stream_Type`. This means that you can use the Ada stream
attributes (`'Write`, `'Read`, `'Output` and `'Input`) to transmit objects
to and from a stream opened as a POSIX file.
The repository comes with three test cases:
1) `streaming_tagged_records` - shows how tagged records can be streamed from
standard output through a pipe and standard input.
2) `unused_units` - warns about units which aren't compiled.
If you want to find free Ada tools or libraries AdaIC  is an excellent
starting point. You can also take a look at my other source text
repositories  or my web site .
 Source text repository:
 Free Ada Tools and Libraries:
 My repositories on Bitbucket:
 My web site: